เล่นไฟล์. bat ใน zsh (ใน Windows)


3

บนเครื่อง Windows ฉันต้องการหลีกเลี่ยงการใช้cmd.exeงานทั้งหมด ฉันพยายามใช้ babun (mintty 1.1.3) เพื่อเรียกใช้ไฟล์แบตช์ในโฟลเดอร์ Windows

งานนี้:

{ ~ } » ./file.bat -o /path/to/files.xml

อย่างไรก็ตามฉันต้องการทำสิ่งที่ชอบ:

{ ~ } » cd /path/to/  
{ ~ } » ./"c:\Program Files\App\file.bat" -o files.xml

อย่างไรก็ตามสิ่งที่ฉันได้รับคือ zsh: no such file or directory:

ฉันลองshแล้วcmd /cและคำสั่งอื่น ๆ ที่ฉันพบว่าไม่มีประโยชน์ ฉันได้ลองใช้รูปแบบพา ธ ที่เป็นมิตรกับ linux มากกว่าเช่นc:/Program\ Files/App/file.bat

ฉันจะขอบคุณสำหรับความช่วยเหลือใด ๆ กับสิ่งนี้


คุณแน่ใจหรือไม่ว่าการจำลองเสมือน UAC ไม่ได้เล่นกับคุณและไฟล์อื่น ๆ เพราะคำตอบของ Linostar ใช้ได้ผลแน่นอน
Daniel B

ขอบคุณ ไม่ฉันไม่แน่ใจ ฉันจะตรวจสอบสิ่งนั้นได้อย่างไร
msoutopico

คำตอบ:


5

คุณลองลบ dot-slash ./ออกจากจุดเริ่มต้นของเส้นทางหรือไม่ A .หมายถึงไดเรกทอรีปัจจุบันและวางไว้ข้างหน้าพา ธ สัมบูรณ์เช่นเดียวกับที่คุณใช้มักไม่มีเหตุผล

ลอง:

{ ~ } » "c:\Program Files\App\file.bat" -o files.xml

หรือ

{ ~ } » "c:/Program Files/App/file.bat" -o files.xml

UPDATE:

หรือลองใช้: "/cygdrive/c/Program Files/App/file.bat" -o files.xml


ขอบคุณ Linostar ใช่นั่นเป็นสิ่งแรกที่ฉันได้ลอง ผลลัพธ์คือข้อความ "ไม่พบคำสั่ง zsh: C: \ Program Files \ App \ file.bat" (สำหรับคำแนะนำเดิมของคุณ) หรือ "ระบบไม่สามารถหาพา ธ ที่ระบุ" (สำหรับอันหลัง)
msoutopico

เอาต์พุตของคำสั่งpwdใน zsh ของคุณคืออะไร? นั่นจะให้ความคิดที่ดีว่าควรเขียนเส้นทางสัมบูรณ์ของคุณอย่างไร
Linostar

เนื่องจากโดยทั่วไป Cygwin จะใช้เตียรอยด์จึงสามารถทำงานกับเส้นทาง Windows ได้เป็นส่วนใหญ่ "G:/test.bat"ใช้งานได้สำหรับฉันรวมถึงไดเรกทอรีการทำงานที่ตั้งค่าไว้อย่างถูกต้องและ whatnot
Daniel B

ขอบคุณ @Linostar: การส่งออกของpwd/cygdrive/c/Users/Manuel/SkyDrive/path/to/files.xmlเป็น
msoutopico

ฉันได้ลองใส่แบบเรียบง่ายtest.bat(โดยไม่มีอาร์กิวเมนต์ -o) ซึ่งเพิ่งพิมพ์Hello Worldในโฟลเดอร์เดียวกับที่file.batและมันใช้ได้ แปลกมาก
msoutopico
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.