Как упомянуть C:\Program Files в пакетном файле

Мне нужно вызвать исполняемый файл в каталоге C:\Program Files из пакетного файла. Как мы можем указать имя каталога «Program Files» в пакетном файле. Я получаю сообщение об ошибке, например C:\Program not found.

Я считаю, что между ними нужно добавить % или ~, но я не смог его получить. Пожалуйста, помогите.

Спасибо


person explorer    schedule 29.10.2013    source источник
comment
Я пытался погуглить перед публикацией. Я использовал такие термины, как как мы можем упомянуть каталог 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)


Окружите вызов скрипта "", как правило, рекомендуется делать это с помощью пути к файлу.

"C:\Program Files"

Хотя для этого конкретного имени вам, вероятно, следует использовать переменную среды следующим образом:

"%ProgramFiles%\batch.cmd"

или для 32-битной программы в 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
Вау, никогда не знал, что ^ - это escape-символ в Windows. Я всегда думал, что это просто ctrl+key. Кстати, в 64-битной версии Win есть еще одна переменная среды для доступа к 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: Конечно. У меня только что возникла еще одна проблема. Когда я использую ее в моем фактическом пакетном файле в качестве запуска 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:\. Поскольку перед C:\Program^ Files\temp.exe есть команда Start, я получаю ошибка. Пожалуйста, предложите какое-то решение. - person explorer; 30.10.2013
comment
Ха, я не видел функцию start. В чем смысл этой функции? Если вам просто нужно запустить temp.exe, удалите его. - person Rémi Benoit; 30.10.2013
comment
@RameshJothimani: вместо использования escape-символов добавление " вокруг пути более читабельно и является стандартным для передачи путей в Windows. Я никогда не видел программы, использующей ^ для выхода - person phuclv; 30.10.2013
comment
Если вам нужно указать много параметров перед запуском программы, таких как приоритет, соответствие... тогда вызовите ее с помощью start. В противном случае просто используйте имя файла, этого достаточно - person phuclv; 30.10.2013
comment
Обратите внимание, что start напрямую не взаимозаменяемо с использованием имени файла: start без wait запускает программу асинхронно с остальной частью пакетного файла (вместо паузы до завершения программы); и если исполняемый файл не может быть найден, 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
И знаете, почему это работает? Как это решает проблему ОП? - person Yunnosch; 14.03.2020
comment
Гораздо лучше попросить запустить `dir /X c:` один раз, чтобы получить сокращенное имя, которое действительно может работать. Но также может быть ~ 1 или теоретически любое другое число... - person B. Go; 14.03.2020
comment
@ RaZa74 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 вы можете легко избежать пробела. Если вы хотите упомянуть папку «program files» в пакетном файле.

Выполните следующие действия:

1. Введите c: и нажмите клавишу ВВОД.

2. cd program files

3. cd "choose your own folder name"

затем продолжайте, как хотите.

Таким образом, вы можете создать пакетный файл и указать папку с программными файлами.

person P.Parthasarathi    schedule 25.04.2014