Добавление текста к переменной в пакетном сценарии - PullRequest
0 голосов
/ 26 марта 2019

Добавление имени файла к пути к файлу, введенному пользователем, не работает.

Я получаю путь к файлу от пользователя и хочу добавить имя файла, который я хочу открыть. После этого я хочу «запустить» файл. Однако это не работает так, как я ожидаю. Может кто-нибудь помочь?

@ echo off
if exist clientshutdown3.exe (
start clientshutdown3.exe) else (
set /p path= Enter path of pdf file:
start %path%\lor.pdf
)
pause

1 Ответ

1 голос
/ 26 марта 2019

Пара вещей.Вам нужно заключить пути в двойные кавычки, чтобы устранить возможные пробелы.Кроме того, поскольку мы устанавливаем переменные внутри цикла (кодовый блок), лучше всего использовать delayedexpansion.

И наконец, НИКОГДА не устанавливайте имя переменной, которая существует как системная переменная среды.Здесь path нарушит ваш фактический путь, и команды больше не будут работать, поэтому вместо этого создайте несуществующее имя, например mypath.

@echo off
setlocal enabledelayedexpansion
if exist clientshutdown3.exe (
    start clientshutdown3.exe
 ) else (
    set /p "mypath=Enter path of pdf file: "
    start "" "!mypath!\lor.pdf"
)
pause

. Вы также можете уйти без delayedexpansion, перемещаясекция start снаружи кодового блока.

@echo off
if exist clientshutdown3.exe (
    start clientshutdown3.exe
 ) else (
    set /p "mypath=Enter path of pdf file: "
)
if defined mypath start "" "%mypath%\lor.pdf"
pause
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...