Запустить пакетный скрипт для всех файлов в папке - PullRequest
0 голосов
/ 08 октября 2019

У меня есть папка, ежедневно получающая файлы вычислений. Иногда приходит несколько файлов. Я хочу выполнить пакетный скрипт для всех из них в цикле. Файлы могут иметь разные имена, но могут содержать только три расширения: .ta, .tb, .tc.

Я пытаюсь запустить пакетный сценарий для всех них, переименовать файлы, чтобы они содержали метку времени, и перейти в папку архива. Я пробовал несколько комбинаций из нижеприведенного, но не могу понять:

cd C:\test\files

FOR %%x IN (*.ta, *.tb, *.tca) DO (
    call C:\test\batches\combine.bat
    move %%x "C:\test\archive\calculations.txt-%date:/=-%_%time::=-%"
)

. В вышеупомянутом случае объединение .bat не выполняется должным образом, и файл не перемещается. Тем не менее, когда я запускаю его следующим образом, он запускает объединение .bat и перемещает файл. Но если у меня есть два файла, объединение .bat выполняется на обоих, а второй не перемещается в папку архива:

FOR /R C:\test\files %%x IN (*.ta, *.tb, *.tca) DO (
    call C:\test\batches\combine.bat
    move %%x "C:\test\archive\calculations.txt-%date:/=-%_%time::=-%"
)

Проблема в том, что в C: \ test \ files и других папках есть другиеЯ хочу, чтобы файл Combine.bat запускался только для этого конкретного пути, а не для каких-либо подпапок. Не удается ли это, потому что я изменил каталог в начале на C: \ test \ files, а затем цикл вызывает другой каталог?

Благодарим вас за помощь.

...