עבור לתוכן

איך כותבים בBAT כל ערך?

Featured Replies

פורסם

אני רוצה לעשות קובץ BAT שיעשה פעולה כלשהיא לכל קבצי הtxt שנמצאים איתו בתיקיה

אז איך אפשר להגיד לו כל שם? ניסיתי

*.txt

אבל זה לא עובד :\

יש רעיונות?

תודה.

פורסם
  • מחבר

אני ממש לא מבין בזה... רק חשבתי משהו שנראה הגיוני

אתה יכול בבקשה לכתוב לי את הפקודה? תודה :D

ניסיתי

%%variable.txt

אבל אני מניח שזה לא אמור להיות ככה

זאת פקודה ממש פשוטה אבל במקום לכתוב אותה הרבה פעמים עם שמות שונים חשבתי שהוא יחפש לבד את השמות

זאת הפקודה בעיקרון

signsis 1.sis 2.sis 5700.cer 5700.key 12345

(חתימת קבצי SIS/X)

הפלט הוא 1 והקלט הוא 2

אם אפשר גם שהוא יהפוך את הפלט ל Sign-1

פורסם

הנה דוגמה פשוטה:

FOR %%c in (*.txt) DO echo %%c

הפקודה תדפיס לך את שמות כל קבצי הטקסט בתיקייה הנוכחית.

אתה יכול להחליף כמובן את echo בכל פקודה אחרת שאתה רוצה שתרוץ.

פורסם
  • מחבר

הממ אז:

FOR %%c in DO signsis 2.sis 5700.cer 5700.key 12345

ה(*.txt) זאת רק דוגמא לא?

לא ממש הבנתי איך מחברים את זה עם הפקודה שהבאתי

פורסם

למה זה רק דוגמה? מה שזה עושה הוא לעבור על כל הקבצים עם סיומת txt, ולכולם לעשות echo.

אני מניח שאתה רוצה להפעיל את signsis על כל קבצי ה-txt, נכון?

אז תעשה ככה:

FOR %%c in (*.txt) DO signsis %%c 5700.cer 5700.key 12345

(אני מניח ש-signsis מקבל כפרמטר ראשון את הקובץ שעליו אתה רוצה שיעבוד, לא?)

פורסם
  • מחבר

כן אבל הוא צריך גם לקבל את הפרמטר של איך לקרוא לקובץ שיווצר

רציתי שהוא יקרא לו sign-1

בעוד 1 מייצג את שם הפלט

פורסם

לא קשור ספציפית למקרה הזה כיוון שכבר קיבלת את התשובה, אבל אם עדיין בסוף שנת 2007 אתה כותב באצ'ים הגיע הזמן לעבוד לPowerShell...

פורסם
  • מחבר

למה זה רק דוגמה? מה שזה עושה הוא לעבור על כל הקבצים עם סיומת txt, ולכולם לעשות echo.

אני מניח שאתה רוצה להפעיל את signsis על כל קבצי ה-txt, נכון?

אז תעשה ככה:

FOR %%c in (*.txt) DO signsis %%c 5700.cer 5700.key 12345

(אני מניח ש-signsis מקבל כפרמטר ראשון את הקובץ שעליו אתה רוצה שיעבוד, לא?)

מה שכתבת לא עבד, כי לא ציינת לו איך לכתוב את השם של הקובץ השני, אבל זה עובד לי:

FOR %%c in (*.txt) DO signsis %%c x.sis 5700.cer 5700.key 12345

התוכנה בעצם יוצרת את הקובץ השני(x.sis), אני רוצה שהיא תקרא לו בשם של הקובץ הראשון ורק תוסיף את התו sign

ניסיתי כל מיני קומבינציות של % אבל זה לא עובד, יש לך רעיון?

תודה :)

פורסם

ניסית פשוט ככה?

FOR %%c in (*.txt) DO signsis %%c %%c.1 5700.cer 5700.key 12345

אם זה לא עובד, תנסה גם לשים רק % בכל המקומות במקום %%

פורסם
  • מחבר

זה עובד אבל זה משנה את הפורמט של הקובץ ל 1 וזה לא עוזר לי

ניסית ככה וגם עם % אבל זה נכנס ללופ אינסופי

FOR %%c in (*.sis) DO signsis %%c 1.%%c 5700.cer 5700.key 12345

פורסם

אז תעביר את התוצאה לתיקייה אחרת.

צור תיקייה בשם x, ואז תשמור את הקבצים ל-x\%%c.

פורסם
  • מחבר

אני ממש מעדיף שלא

יש אפשרות לכתוב את זה בC#? או בC שזה יצליח?

אם אני אעשה את זה, איך אני אומר לו שיעתיק לדסק?

פורסם

ברור שאפשר, בהנחה שאתה יודע C/C#. לא מומלץ לכתוב את זה ב-C, כי ה-API של לעבור על כל הקבצים בספרייה הוא די מסורבל.

אם כבר, אז עדיף לעשות את זה באיזשהי שפת סקריפטים פשוטה כמו פייתון, או באמצעות shell מתוחכם כמו PowerShell שצוין לעיל.

פורסם
  • מחבר

אני לא יודע שום שפה :\

אתה בטוח שאי אפשר בBAT?

או דרך קלה אחרת?

אולי יש פקודה להפסיק את הלופ?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים