2015-01-26 2 views
0

У меня есть пакетный файл, как ниже:Изменение рабочего каталога в командной строке на основе пользовательского ввода

@echo off 
cd\ 
title Build Batch 
cd C:\ProgramData\CodeBase\ 
dir 
set /p codeBase=Enter the CodeBase: %=% 
@echo Build for %codeBase% 
cd\ 
cd C:\ProgramData\CodeBase\%codeBase%\my_code_folder\build 
pause 

Если я исполню его, он работает нормально, пока он получает ввод пользователя и вывести значение переменной кодBase. После этого он не может изменить рабочий каталог и просто стоит на месте.

Как сделать это, чтобы изменить рабочий каталог на основе пользовательского ввода?

+1

Если в CodeBase есть пробелы, используйте 'cd 'C: \ ProgramData \ CodeBase \% codeBase% \ my_code_folder \ build" '(обратите внимание на двойные кавычки) – jftuga

+0

Да, укажите все, что вы можете, особенно имена каталогов и введенные пользователем значения. –

ответ

0

Возможный рабочий код для вашей задачи может быть:

@echo off 
title Build Batch 
cd /D C:\ProgramData\CodeBase\ 
rem List only names of subdirectories sorted by name. 
dir /AD /B /ON 
set /p "codeBase=Enter the CodeBase: " 
echo Build for %codeBase% 
cd "C:\ProgramData\CodeBase\%codeBase%\my_code_folder\build" 
pause 

двойные кавычки могут быть существенная разница в код.

Смежные вопросы