ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
כלב יםאורח · ·
 

הודעה פורסם: 31/01/2012 - 21:13
נושא ההודעה: הרצת סקריפט cygwin דרך cmd

אהלן,
רציתי לדעת אם יש דרך נוחה להריץ סקריפטים של cygwin כמו שמריצים סקריפטים של bat?

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

1. כותב סקריפט bat שמריץ לי את הbash מהתיקייה של cygwin, ואני צריך להמיר את כל הנתיבים שקיבלתי לנתיבים של cygwin. כלומר אם אני מקבל בקובץ bat נתיב מסוים אני צריך להמיר אותו לנתיב הcygwinי שלו. נראה ככה:

קוד:

set FILE_PATH=%1
REM echo before: "%FILE_PATH%"
REM set FOLDER_PATH=%~dp1
REM echo %FOLDER_PATH%

set CYG_PATH=%FILE_PATH%
set CYG_PATH=%CYG_PATH:C:=/cygdrive/c%
set CYG_PATH=%CYG_PATH:c:=/cygdrive/c%
set CYG_PATH=%CYG_PATH:\=/%

REM echo %CYG_PATH%

c:\cygwin\bin\bash --login -c "/cygdrive/c/unixutils/bin/ExtractPdfAttachments.sh %CYG_PATH%"
PAUSE


מישהו מכיר פתרון טוב יותר להרצת סקריפטים של cygwin תחת חלונות, במקום לעטוף את הסקריפט בbat ולעשות המרות מפגרות לא טובות?

לא יכול להיות שזה כזה לא נוח, הcmd הרגיל של חלונות הרבה פחות חזק ונוח מbash, ואני רוצה גם להשתמש בסקריפטים שלי מהאובונטו בלי לשכתב אותם מחדש כcmd או powershell.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
borsoodלא בפורום כעת ת.הצטרפות: 05/01/2007 · הודעות: 306 ·
 

הודעה פורסם: 31/01/2012 - 22:12
נושא ההודעה:

למה כל ההתעמלות הזו?
למה אתה צריך להיות login shell?
תדאג שהסקריפט ExtractPdfAttachments יקבל גם קבצים בפורמט Windows
אם זה קשה תשתמש בcygpath
ואז תוכל פשוט להריץ
קוד:
c:\cygwin\bin\bash %1
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 01/02/2012 - 08:44
נושא ההודעה:

הסקריפט צריך להיות בlogin כי הוא מגדיר בפנים כל מיני משתנים ומשתמש במשתנים ובלי לוגין הוא לא עובד.

כמו כן, אני רוצה להשתמש בסקריפטים שלי מאובונטו בלי לעשות בהם שינויים ולהריצם כמו שהם, צריך פתרון גנרי.

הדרך שאני מריץ את הסקריפט הזה למשל (ותסכים איתי שזה גם מאד נוח), זה ע"י גרירה של הקובץ שעליו אני רוצה לרוץ לסקריפט bat. חלונות אוטומטית מריץ את הסקריפט Bat עם הנתיב של הקובץ (נתיב חלונות ולא cygwin). הסקרפיט חייב להיות נגיש ונוח לשימוש מבלי לפתוח cmd ולהעביר לו פרמטרים.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
borsoodלא בפורום כעת ת.הצטרפות: 05/01/2007 · הודעות: 306 ·
 

הודעה פורסם: 01/02/2012 - 17:36
נושא ההודעה:

יש לך שלש ברירות:
1. שתגדיר cygpath סתמי באובונטו
2. אם אין רווחים בפרמטר זה יעבוד
קוד:
FOR /F %x IN ('"C:\cygwin\bin\cygpath -au %1%"') DO SET CYG_PATH=%x

3. תחליף את הBAT בPS1 ותשתמש בהחלפת $() כמו בבאש.
מעבר לזה אני לא רואה מה אפשר לשפר.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 01/02/2012 - 19:24
נושא ההודעה:

מגניב לא ידעתי על קיומו של cygpath! עשיתי שדרוג שיעבוד גם עם רווחים:
קוד:
FOR /F "tokens=*" %x IN ('C:\cygwin\bin\cygpath -au "%1%"') DO SET CYG_PATH=%x


תודה רבה!
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. אורח [כלב ים]
  2. borsood
  3. אורח
  4. borsood
  5. אורח