
Я работаю с платформой 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