Нужен пакетный файл Windows, который будет добавлять строку в каждую строку команды dir для создания списка файлов.

Нужен пакетный файл Windows, который будет добавлять строку в каждую строку команды dir для создания списка файлов.

Я работаю с платформой Informatica, которая позволяет мне использовать только пакетные файлы. В настоящее время я создаю список имен файлов с помощью команды dir /b /a-d

850_B_4545703_.txt
850_B_003029660_.txt
850_B_069029548_.txt
850_B_188789_.txt
850_C_ENT_1712865_.txt
850_C_ENT_1712871_.txt
850_C_1712877_.txt

Но для того, чтобы Informatica использовала этот список для поиска файлов, мне нужно добавить путь, используемый в подключении к плоскому файлу, который

\\jdeappp03\EDI\

Итак, я пытаюсь создать пакетный файл, который выведет следующее:

\\jdeappp03\EDI\850_B_4545703_.txt
\\jdeappp03\EDI\850_B_003029660_.txt
\\jdeappp03\EDI\850_B_069029548_.txt
\\jdeappp03\EDI\850_B_188789_.txt
\\jdeappp03\EDI\850_C_ENT_1712865_.txt
\\jdeappp03\EDI\850_C_ENT_1712871_.txt
\\jdeappp03\EDI\850_C_1712877_.txt

Я попробовал использовать его dir /s/b *.txt, но он дал абсолютный путь, который моя настройка Informatica не может использовать для поиска файлов.

Есть ли способ получить желаемый результат с помощью пакетного файла?

решение1

Вы можете использовать следующую команду в пакетном файле:

for /f "delims=" %%a in ('dir /b /a-d <PATH>') do (echo \\jdeappp03\EDI\%%a)

Использование цикла for вокруг команды позволяет вам перебрать ее вывод и сохранить его в переменной %%a. Все, что вы хотите сделать во время этой итерации, следует после do.

Скобки после текста нужны только в doтом случае, если вы хотите использовать переносы строк для удобства чтения.

Используйте for /?cmd в Windows, чтобы узнать больше о forкоманде.

решение2

Более короткий вариант:

for %%i in ("D:\Path\*.txt")do echo \\jdeappp03\EDI\%%~nxi

Связанный контент