我正在使用仅允许我使用批处理文件的 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