需要一个 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 /?在 Windows cmd 中使用以了解有关该for命令的更多信息。

答案2

更短的选项是:

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

相关内容