1

Здравствуйте, у меня есть вопрос относительно поиска файлов с командным файлом.
У меня есть следующий пакетный файл:

echo off
set arg1=%1
set arg2=%2
set arg3=%3

echo %arg1% %arg2% %arg3%

for /r %arg1% %%g in (%arg3%) do echo %%g

План моих папок:

TEST
---- 1702
-------jquery.js
---- 1704
-------jquery.js

Всякий раз, когда я запускаю командный файл с этим вводом:

test.bat "C:\Batch Examples\TestDir" "C:\Batch Examples\OutDir" "jquery.js"

Я получаю следующий вывод:

"C:\Batch Examples\TestDir" "C:\Batch Examples\OutDir" "jquery.js"
C:\Batch Examples\TestDir\"jquery.js"
C:\Batch Examples\TestDir\1702\"jquery.js"
C:\Batch Examples\TestDir\1704\"jquery.js"

Почему C:\Batch Examples\TestDir\"jquery.js" отображается в результате?
В каталоге TestDir нет файла jquery.

Желаемый вывод, который я хочу:

jquery.js
jquery.js

Кто-нибудь может объяснить мне, что я делаю не так?

1 ответ1

2

Ваша ошибка заключается в использовании фиксированного значения для arg3. For /R будет перебирать (под) папки, начиная с arg1, применяя jquery.js для каждой папки, это не оценивает.

@Echo off
echo %1 %2 %3
for /r "%~1" %%g in ("%~3*") do echo %%~fg

Должен вернуться:

C:\Batch Examples\TestDir\1702\jquery.js
C:\Batch Examples\TestDir\1704\jquery.js

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .