Я должен показать имена файлов, используя данный шаблон.Я написал следующий код:
if "%2" == "" (
echo "Missing second argument!"
set /p FileName="Input file name template ('*', '?' are allowed): "
set /p FileType="Input file type ('text', 'bat', 'all' only): "
if FileType == "all" (set FileType = "*")
) else (
set FileType="%2"
)
echo %DirSearch%\%FileName%.%FileType%
for %%i in (%DirSearch%\%FileName%.%FileType%) do (echo "Thats it: %%i")
Если второй аргумент пуст, я спрашиваю пользователя о шаблоне имени файла, расширении (если оно равно 'all', я переписываю его значение как '*'.
Теперь первая проблема в том, что он не переписан. Когда я помещаю 'all', 'FileType' все еще 'all' после установки его в '*'. Почему?
И эхоотображается:
"C:\Folder"\test.all
"Thats it: "C:\Folder"\test.all"
Как интерпретировать его как одно значение и использовать в for
?
Новый код:
if "%2" == "" (
...
if "%FileType%" == "all" (set FileType=*)
) else (
...
)
set result=%DirSearch%\%FileName%.%FileType%
echo %result%
for %%i in (%result%) do (echo "Thats it: %%i")
// echo %result%:
"C:\Data\test"\test.all
// in for cycle
"Thats it: "C:\Data\test"\test.all"
Правильная строкадолжно быть: "C: \ Data \ test \ test.all"