วิธีพูดถึงไฟล์ C:\Program ในแบตช์ไฟล์

ฉันต้องเรียกใช้ไฟล์ exe ในไดเร็กทอรี C:\Program Files จากแบตช์ไฟล์ เราจะพูดถึงชื่อไดเร็กทอรี "Program Files" ในแบตช์ไฟล์ได้อย่างไร ฉันได้รับข้อผิดพลาดเช่น ไม่พบ C:\Program

ฉันเชื่อว่าจำเป็นต้องเพิ่ม % หรือ ~ ในระหว่างนี้แต่ไม่สามารถรับได้ กรุณาช่วย

ขอบคุณ


person explorer    schedule 29.10.2013    source แหล่งที่มา
comment
ฉันลองใช้ Google ก่อนที่จะโพสต์ ฉันใช้คำศัพท์เช่นเราจะพูดถึงไดเร็กทอรี Program Files ในแบตช์ไฟล์ได้อย่างไร แต่ไม่ได้ผลลัพธ์ที่เหมาะสม ขอบคุณ   -  person explorer    schedule 29.10.2013
comment
ลองค้นหา cmd.exe how to specify a path with spaces   -  person Bill_Stewart    schedule 23.04.2015


คำตอบ (7)


ล้อมรอบการเรียกสคริปต์ด้วย "" โดยทั่วไปแล้ว แนวทางปฏิบัติที่ดีในการทำเช่นนั้นกับ filepath

"C:\Program Files"

แม้ว่าสำหรับชื่อเฉพาะนี้คุณควรใช้ตัวแปรสภาพแวดล้อมดังนี้:

"%ProgramFiles%\batch.cmd"

หรือสำหรับโปรแกรม 32 บิตบน windows 64 บิต:

"%ProgramFiles(x86)%\batch.cmd"
person Rémi Benoit    schedule 29.10.2013
comment
ควรใช้ตัวแปรสภาพแวดล้อม "%ProgramFiles%" และ "%ProgramFiles(x86)%" ดีกว่า - person npocmaka; 29.10.2013
comment
@DavidCandy แก้ไขแล้วจริงๆ - person Rémi Benoit; 29.10.2013
comment
ว้าว ไม่เคยรู้เลยว่า ^ เป็นอักขระหลีกใน Windows ฉันคิดมาตลอดว่ามันเป็นแค่ ctrl+key BTW ใน win 64 บิตมีตัวแปรสภาพแวดล้อมอื่นในการเข้าถึงไฟล์โปรแกรม 32 บิต: %ProgramW6432% - person phuclv; 29.10.2013
comment
C:\Program^ Files เป็นไฟล์ที่ฉันกำลังมองหา ขอบคุณมาก! - person explorer; 29.10.2013
comment
@RameshJothimani หากสิ่งนี้ตอบคำถามโปรดทำเครื่องหมายคำตอบว่ายอมรับโดยใช้เครื่องหมายถูกสีเขียว - person Rémi Benoit; 29.10.2013
comment
@ RémiBenoit: แน่นอนฉันเพิ่งมีปัญหาอีกหนึ่งข้อเมื่อฉันใช้มันในไฟล์แบตช์จริงของฉันเป็น start C:\Program^ Files\temp.exe ฉันได้รับข้อผิดพลาด แต่มันทำงานได้ดีเมื่อฉันใช้ E:\Program ^ Files\temp.exe กรุณาแนะนำวิธีแก้ปัญหาบางอย่าง - person explorer; 29.10.2013
comment
บางที temp.exe อาจอยู่ในไดรฟ์ E:? - person Rémi Benoit; 30.10.2013
comment
@ RémiBenoit: ไฟล์มีอยู่ใน C:\Program^ Files\temp.exe ฉันถือว่ามันเป็น E:\ drive โดยไม่ได้ตั้งใจเนื่องจากมีคำสั่ง Start ก่อน C:\Program^ Files\temp.exe ฉันจึงได้รับ error.กรุณาแนะนำวิธีแก้ปัญหา. - person explorer; 30.10.2013
comment
ฮา ฉันไม่เห็นฟังก์ชัน start ฟังก์ชันนี้มีไว้เพื่ออะไร? หากคุณเพียงแค่ต้องเรียกใช้ temp.exe ให้ลบออก - person Rémi Benoit; 30.10.2013
comment
@RameshJothimani: แทนที่จะใช้อักขระหลีก การเพิ่ม " รอบพาธจะอ่านได้ง่ายกว่าและเป็นมาตรฐานในการส่งพาธใน Windows ฉันไม่เคยเห็นโปรแกรมที่ใช้ ^ เพื่อหลบหนี - person phuclv; 30.10.2013
comment
หากคุณต้องการระบุพารามิเตอร์จำนวนมากก่อนที่จะรันโปรแกรม เช่น ลำดับความสำคัญ ความสัมพันธ์... ให้เรียกมันด้วย start หรือเพียงแค่ใช้ชื่อไฟล์ก็เพียงพอแล้ว - person phuclv; 30.10.2013
comment
โปรดทราบว่า start ไม่สามารถใช้แทนกันได้โดยตรงกับการใช้ชื่อไฟล์: start โดยไม่มี wait รันโปรแกรมแบบอะซิงโครนัสกับไฟล์แบตช์ที่เหลือ (แทนที่จะหยุดชั่วคราวจนกว่าโปรแกรมจะเสร็จสิ้น) และหากไม่พบ exe start จะหยุดไฟล์แบตช์ด้วยข้อความป๊อปอัป - person Luis; 19.10.2015
comment
@ RameshJothimani ฉันจะไม่แนะนำให้หลีกเลี่ยงอักขระพิเศษในเส้นทาง แนวปฏิบัติที่ดีที่สุดที่ยอมรับคือการใช้เครื่องหมายคำพูดล้อมรอบพาธของไฟล์ด้วยการเว้นวรรคและอักขระพิเศษ - person Squashman; 11.03.2017

บนพีซีของฉัน ฉันต้องทำสิ่งต่อไปนี้:

@echo off
start C:\"Program Files (x86)\VirtualDJ\virtualdj_pro.exe" 
start C:\toolbetech\TBETECH\"Your Toolbar.exe"
exit
person user5861369    schedule 30.01.2016
comment
วิธีเพิ่มพารามิเตอร์พูดจากตัวอย่างของคุณ virtualdj_pro.exe พร้อมพารามิเตอร์ -PACKAGENAME ABCSync - person Chrisantics; 25.08.2016

ตอนนี้ bash ออกมาแล้วสำหรับ windows 10 หากคุณต้องการเข้าถึงไฟล์โปรแกรมจาก bash คุณสามารถทำได้ดังนี้: cd /mnt/c/Program\ Files

person antoni    schedule 14.12.2016

ฉันประสบปัญหาคล้ายกันกับคุณ แม้ว่าฉันพยายามใช้ start เพื่อเปิด Chrome และใช้เส้นทางของไฟล์ ฉันใช้เพียง start chrome.exe และมันก็เปิดออกมาได้ดี คุณอาจต้องการลองทำเช่นเดียวกันกับไฟล์ exe การใช้เส้นทางไฟล์อาจไม่จำเป็น

นี่คือตัวอย่างบางส่วน (โดยใช้ชื่อไฟล์ที่คุณให้ไว้ในความคิดเห็นในคำตอบอื่น):

  • แทนที่จะเป็น C:\Program^ Files\temp.exe คุณสามารถลอง temp.exe ได้

  • แทนที่จะเป็น start C:\Program^ Files\temp.exe คุณสามารถลอง start temp.exe

person A Child of God    schedule 10.02.2017

ฉันใช้ในไฟล์แบตช์ของฉัน - c:\progra~2\ แทนที่จะเป็น C:\Program Files (x86)\ และใช้งานได้

person RaZa74    schedule 14.03.2020
comment
และคุณรู้ไหมว่าทำไมมันถึงได้ผล? สิ่งนี้จะช่วยแก้ปัญหา OPs ได้อย่างไร - person Yunnosch; 14.03.2020
comment
จะดีกว่ามากหากขอให้เรียกใช้ `dir /X c:` หนึ่งครั้งเพื่อให้ได้ชื่อที่สั้นลงซึ่งสามารถใช้งานได้จริง แต่อาจเป็น ~1 หรือตามทฤษฎีแล้วตัวเลขอื่น ๆ... - person B. Go; 14.03.2020
comment
@ RaZa74 เป็นวิธีปฏิบัติที่ดีในการจัดคำตอบของคุณให้ตรงกับสิ่งที่ OP ถาม คำตอบของคุณจะได้รับคะแนนโหวตอย่างแน่นอนหากคุณวางกรอบอย่างถูกต้อง แค่พูด ... - person Prakhar; 14.03.2020

ใช้สิ่งนี้เป็นความคิด

"C:/Program Files (x86)/Nox/bin/nox_adb" install -r app.apk

ที่ไหน

"path_to_executable" commands_argument
person Роман Зыков    schedule 17.08.2019

ในขณะที่สร้างไฟล์ bat คุณสามารถหลีกเลี่ยงพื้นที่ได้อย่างง่ายดาย หากคุณต้องการกล่าวถึงโฟลเดอร์ "ไฟล์โปรแกรม" ในแบตช์ไฟล์

ทำตามขั้นตอนต่อไปนี้:

1. พิมพ์ c: จากนั้นกด Enter

2. cd program files

3. cd "choose your own folder name"

แล้วดำเนินการต่อตามที่คุณต้องการ

วิธีนี้คุณสามารถสร้างไฟล์แบตช์และคุณสามารถพูดถึงโฟลเดอร์ไฟล์โปรแกรมได้

person P.Parthasarathi    schedule 25.04.2014