עבור לתוכן

שאלה (השוואת שתי מחרוזות) בPERL\DOS

Featured Replies

פורסם

מישהו יודע איך אפשר לעשות IF

בDOS שישווה בין שתי מחרוזות (=משפטים) ככה ש: את הראשון אני מכניס ואת השני אני מקבל מקובץ DOS אחר שמחזיר לי מחרוזת?

זה מה שאני כתבתי - וזה לא עבד, מבקש עזרה כמה שיותר דחוף. תודה מראש =]

IF %a.cmd == "I'm Fine. " (
echo he's fine
pause
) ELSE (
echo ------------------
echo he needs help...
pause
)

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

פורסם

אני לא חושב שאתה יכול להחזיר מחרוזת מקובץ bat. אתה יכול להחזיר קוד (מספר) אבל לא מחרוזת.

מה שאתה יכול לעשות הוא לשמור את המחרוזת ש a.cmd אמור להחזיר לקובץ ולקרוא אותה מהקובץ השני.

עריכה: אחרי חיפוש קצר בגוגל כנראה שטעיתי וכן אפשר. תראה את ההודעה השלישית מהסוף כאן:

http://www.google.com/search?q=cache:_B7PSN9ZJTUJ:www.experts-exchange.com/Operating_Systems/MSDOS/Q_20687843.html+bat+file+return+value&hl=en&ct=clnk&cd=5&client=firefox-a

פורסם
  • מחבר

קראתי את זה

אני לא מצליח - אתה ניסית והצלחת לפי מה שהוא כתב? אתה יכול לכתוב מה כתבת ולהסביר פחות או יותר מה כתבת?

עריכה:

ניסיתי להשוות "סתם" בין שתי מחרוזות - גיליתי שזה יותר קשה! יש לי שגיאה בקוד ואני לא מצליח למצוא אותה

if ["yess"]==["yess"](
echo yess
) else if not["yess"]==["yess"](
echo ------------------
echo nooo
echo ------------------
)
pause

פורסם
  • מחבר

בבקשה. מישהו?

איך משווים בין שתי מחרוזות?

פורסם

לפי help if אתה אמור להיות מסוגל לעשות את זה ככה:


IF %USER%==Zelig goto EQUAL
echo different
goto END

:EQUAL
echo equal

:END
echo Repent, for the END is at hand!

כך בחשבון שיתכן שזה לא תומך ברווחים במחרוזות, ואולי אסור רווחים בין == למחרוזות.

כמו כן יש הבדל בין גרסאות שונות של ה-command shell (כלומר XP, 2000, WIN98 וכו').

פורסם
  • מחבר

OK הצלחתי להשוות בין שתי מילים! תודה :yelclap:

עכשיו הבעיה שלי היא להשוות בין שני משפטים

set a=blahblahblah 

ככה אני הגדרתי משתנה A ואז שאלתי אם הוא שווה ל-B שגם הגדרתי (במקום לשאול ישירות אם A שווה למחרוזת שלהי, שאלתי האם הוא שווה לB ששווה למחרוזת):

if [%a%]==[%b%] (
echo yappy
)

זה עובד, אז אני שואל איך להשוות בין שני משפטים (שיש ביניהם רווחים) - את זה לא הצלחתי לעשות.

תודה מראש

פורסם

אולי עם for?

בכל מקרה אתה די אונס את batch לעשות דברים שהוא לא מתוכנן להם. תשיג shell אמיתי, כמו powershell, או משהו כמו binutils, או אפילו perl.

פורסם

או פייטון, THE REAL POWER..

פורסם

אתם הצעירים, עם כל הפרולוג שלכם... ;D

פורסם
  • מחבר

האמת היא שחשבתי באמת לכתוב את מה שאני עושה בPERL, אבל אחת המחרוזות (ימח שמה) מוחזרת אלי מקובץ דוסי וזה משהו שאסור לי לשנות.

אולי יש באמת דרך לקרוא אותה עם PERL? או לשמור אותה איכשהו מדוס לקובץ TXT ואחרי זה לקורא אותה עם PERL? (אין לי מושג איך לשמור ואיך לקרוא..)

אם מישהו יודע תביאו דוגמא שעובדת בבקשה...

בקיצור הנה שוב מה שאני צריך:

להשוות שתי מחרוזות כך ש:

הראשונה מוחזרת מקובץ DOS

השניה - ללא הגבלות :) .

תודה לעוזרים :smile1:

פורסם
  • מחבר

מישהו...? שמבין בPERL? בבקשה... :s07:

ארכיון

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

דיונים חדשים