כתבתם קובץ batch או סקריפט PowerShell שעובד, ועכשיו אתם רוצים למסור אותו למישהו כקובץ .exe יחיד: קובץ אחד ללחיצה כפולה, בלי שאלות “לפתוח באמצעות” ובלי מסוף מלא בפקודות.
לא צריך לשם כך “ממיר BAT ל-EXE” אונליין. Windows כבר כולל כלי שעושה זאת, ול-PowerShell יש מודול חינמי ופתוח שעושה את אותו הדבר לסקריפטי .ps1. שניהם רצים במחשב שלכם, כך שהקובץ שתקבלו נבנה מהסקריפט שלכם ותו לא.
ממהרים?
- קובץ batch (.bat / .cmd): לחצו Win + R, הקלידו
iexpress, וארזו את הקובץ עם פקודת ההתקנהcmd /c yourscript.bat. - PowerShell (.ps1): הריצו
Install-Module ps2exe -Scope CurrentUserפעם אחת, ואזInvoke-ps2exe .\script.ps1 .\script.exe. - Python (.py):
pip install pyinstaller, ואזpyinstaller --onefile script.py. - רוצים אייקון? קחו אחד מכל תוכנה בעזרת מחלץ האייקונים החינמי.
שיטה 1: BAT ל-EXE עם IExpress (מובנה ב-Windows)
IExpress הוא חלק מ-Windows כבר עשרות שנים. הוא נועד לבנות תוכנות התקנה קטנות: הוא אורז קבצים ל-EXE אחד, פורס אותם לתיקייה זמנית כשה-EXE רץ, ומפעיל פקודה. הפקודה הזו יכולה להיות קובץ ה-batch שלכם.
- לחצו Win + R, הקלידו
iexpressולחצו Enter. - בחרו Create new Self Extraction Directive file ולחצו Next.
- בחרו Extract files and run an installation command.
- תנו לחבילה כותרת (היא מוצגת בכותרת החלון של כל הודעה).
- בקשת אישור: No prompt. הסכם רישיון: Do not display a license.
- Packaged files: לחצו Add ובחרו את קובץ ה-
.batשלכם (וכל קובץ שהוא צריך). - Install Program: הקלידו
cmd /c yourscript.batבעצמכם, עם שם הקובץ שלכם. בחירת קובץ ה-.bat מהרשימה לבדה לרוב לא עושה כלום, כי IExpress לא מפעיל קובצי batch ישירות. - Show window: Default כדי לראות את המסוף, או Hidden כדי לרוץ בשקט.
- הודעת סיום: No message.
- Package name: בחרו היכן לשמור את ה-EXE, וסמנו Hide File Extracting Progress Animation from User ו-Store files using Long File Name inside Package.
- Restart: No restart. שמרו את קובץ ה-SED אם תרצו לבנות מחדש בהמשך, ואז לחצו Next כדי ליצור את ה-EXE.
דבר אחד שכדאי לדעת: הסקריפט רץ מתיקייה זמנית, לא מהמקום שבו נמצא ה-EXE. שורה כמו copy data.txt backup\ מחפשת בתיקייה הזמנית הזו. השתמשו בנתיבים מלאים (%USERPROFILE%\Documents\data.txt) לקבצים שהסקריפט קורא או כותב מחוץ לחבילה.
שיטה 2: PowerShell ל-EXE עם ps2exe
ps2exe הוא מודול PowerShell חינמי בקוד פתוח, שמפורסם ב-PowerShell Gallery הרשמי. הוא עוטף סקריפט .ps1 ב-EXE קטן שמריץ אותו, ומאפשר לקבוע סמל, גרסה והאם יופיע חלון מסוף.
- פתחו PowerShell (לא צריך הרשאות מנהל) והתקינו את המודול פעם אחת:
אם PowerShell מבקש להתקין את ספק NuGet או לתת אמון במאגר PSGallery, ענו Y.Install-Module ps2exe -Scope CurrentUser - עברו לתיקייה עם הסקריפט ובנו את ה-EXE:
Invoke-ps2exe .\script.ps1 .\script.exe - אפשרויות שימושיות:
-noConsole: בלי חלון מסוף (לסקריפטים שמציגים טפסים או תיבות הודעה).-iconFile .\app.ico: הסמל של ה-EXE.-requireAdmin: מבקש הרשאות מנהל בעת ההפעלה.-title "My Tool" -version "1.0.0": מה ש-Windows מציג במאפייני הקובץ.
מעדיפים חלון על פני שורת הפקודה? הריצו Win-PS2EXE אחרי התקנת המודול: זה אותו כלי עם טופס קטן.
סקריפטים אחרים: Python, AutoHotkey, Node.js
- Python:
pyinstaller --onefile script.pyבונה EXE אחד בתיקייהdist. הוסיפו--noconsoleלתוכנה עם חלון. - AutoHotkey: תוכנת ההתקנה כוללת את Ahk2Exe: לחצו לחיצה ימנית על קובץ ה-.ahk ובחרו Compile Script.
- Node.js: גרסאות עדכניות (20 ומעלה) יכולות לבנות יישום הפעלה יחיד (ראו את העמוד “Single executable applications” בתיעוד של Node.js).
באמת צריך EXE?
לרוב אפשרות פשוטה יותר עושה את העבודה:
- קיצור דרך. לחצו לחיצה ימנית על קובץ ה-.bat, Send to → Desktop (create shortcut), ואז תנו לקיצור הדרך סמל במאפיינים שלו. לחיצה כפולה עליו מריצה את הסקריפט.
- משימה מתוזמנת. לסקריפט שצריך לרוץ כל יום או בכניסה למערכת, מתזמן המשימות מריץ קובץ .bat או .ps1 ישירות.
- הסקריפט עצמו. אם האנשים שאתם משתפים איתם משתמשים ב-Windows, קובץ .bat כבר רץ בלחיצה כפולה.
שלושה דברים שכל “ממיר BAT ל-EXE” לא מספר לכם
- הקוד שלכם אינו מוסתר. הכלים האלה שומרים את הסקריפט בתוך ה-EXE, לרוב כטקסט רגיל. כל אחד יכול לקרוא אותו בחזרה, למשל עם מחלץ המחרוזות שלנו, שמציג את הטקסט הקריא שבתוך כל קובץ. לעולם אל תכניסו לתוכו סיסמאות, טוקנים או מפתחות.
- תוכנות אנטי-וירוס עלולות להתריע. נוזקות משתמשות באותן עטיפות, ולכן Windows Defender ו-SmartScreen עלולים להזהיר מפני EXE של סקריפט שאינו מזיק כלל. חתימה בתעודת חתימת קוד עוזרת, ו-Microsoft מקבלת דיווחים על זיהוי שגוי לקבצים שיצרתם.
- קובץ EXE מאתר אינטרנט הוא קובץ שאי אפשר לבדוק. ממיר אונליין מחזיר קובץ שנבנה בשרת שאינכם יודעים עליו דבר. לכן אנחנו מסבירים את הדרך המובנית במקום להציע ממיר: עם IExpress או ps2exe אתם יודעים בדיוק מה נכנס לקובץ.
קיבלתם EXE ממישהו אחר ורוצים לדעת מה הוא מריץ לפני שתפתחו אותו? קראו איך לנתח קובץ EXE בלי להריץ אותו.
כלים חינמיים להמשך העבודה
כולם פועלים בדפדפן שלכם: הקבצים שלכם לא מועלים לשום מקום.