שאלה (השוואת שתי מחרוזות) בPERL\DOS - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


VitaminP

Recommended Posts

מישהו יודע איך אפשר לעשות 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 (כלומר , 2000, WIN98 וכו').

קישור לתוכן
שתף באתרים אחרים

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

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

set a=blahblahblah 

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

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

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

תודה מראש

קישור לתוכן
שתף באתרים אחרים

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

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

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

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

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

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

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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...