感謝您關注我的問題。批處理腳本讀取目錄中的文件名並要求用戶選擇一個
我在給定的目錄中有五個配置文件。在我的批處理腳本中,我想讀取這些文件名並將其提示給用戶。一旦用戶選擇了一個配置文件,從它讀取變量。
任何人都可以幫我在這裏的一些邏輯。所以,我可以繼續前進。
謝謝。
感謝您關注我的問題。批處理腳本讀取目錄中的文件名並要求用戶選擇一個
我在給定的目錄中有五個配置文件。在我的批處理腳本中,我想讀取這些文件名並將其提示給用戶。一旦用戶選擇了一個配置文件,從它讀取變量。
任何人都可以幫我在這裏的一些邏輯。所以,我可以繼續前進。
謝謝。
這樣的批處理文件或.cmd
這樣的文件演示了菜單技術(沒什麼奇怪的,用戶必須準確輸入文件名)。關鍵項目:
FOR
SET /P
IF EXIST
祝你好運!
@echo off
REM Show the user the list and ask them which one to use
echo.
echo Please select one of:
echo.
for %%F in ("D:\A Given Directory\*.config") do echo %%~nxF
echo.
set SEL_CFGFNM=
set /P SEL_CFGFNM=Which configuration file:
REM Make sure they answered, and that the file exists
if "%SEL_CFGFNM%" == "" goto ENDIT
if NOT EXIST "D:\A Given Directory\%SEL_CFGFNM%" goto NOCFG
REM User has selected file "D:\A Given Directory\%SEL_CFGFNM%" and it exists
REM Do whatever you want to do with that file now
REM Don't fall through the exit messages
goto ENDIT
REM Exit Messages
:NOCFG
echo.
echo ERROR: Configuration file "%SEL_CFGFNM%" is not on the list
echo.
goto ENDIT
REM Cleanup
:ENDIT
set SEL_CFGFNM=
謝謝史蒂文。 現在我已經提出修改了, 擴展名的文件不應該出現在提示符下,並且 用戶不應該輸入所有的文件名。他必須選擇1,2等選項。 非常感謝您的寶貴意見。 –
你是多麼歡迎。從'FOR'循環的'%%〜nxF'部分放下「x」以擺脫文件擴展名;同樣,在引用文件名時將其添加回來。 –
請參閱[本頁](https://stackoverflow.com/q/15885132/1683264)。如果您更願意在控制檯中保留選項,您可能也對[此類菜單]感興趣(https://stackoverflow.com/a/34983868/1683264)。用'for'循環填充菜單[]'數組。 (* .config)do(set「menu [!idx!] = %%〜nxI」&& set/a idx + = 1)的'setlocal enabledelayedexpansion'和'set「idx = 0」 '建立一個匹配* .config – rojo
的所有文件的菜單向我們顯示您的代碼? – lit