如何逐个为多个文件执行多个批处理命令。这意味着,如果我想先将文件从一个文件夹移动到工作文件夹,将文件重命名为csv格式,调用sqlloader脚本,调用第二个sql脚本,最后再调用另一个sql脚本 - 上面的所有步骤都不应该是对于所有文件,但一次只能存储一个文件。我尝试过如下所示的内容,但是当时出现“\ Downloads \ Validation \ Prestage * .psa”这样的错误是意外的。“我不能在循环标准中传递通配符* .psa吗?
非常感谢并感谢您的时间。
echo off
:MAIN
copy C:\Downloads\Prevalidation\*.psa C:\Downloads\Validation\Prestage\
FOR %A IN (C:\Downloads\Validation\Prestage\*.psa) DO ( move C:\Downloads\Validation\Prestage\*.psa C:\Downloads\Validation\WIP\
ren C:\Downloads\Validation\WIP\*.psa *.csv
<call sqlloader now>
<call update script now>
<call validation script now>
)
exit
谢谢, 桑德斯。
答案 0 :(得分:0)
您的策略是正确的。
有一个小的语法错误:您需要在BAT文件内的%%A
命令中使用%A
而不是FOR
。然后,您需要在循环中引用%%A
作为正在处理的文件的名称。
@echo off
copy C:\Downloads\Prevalidation\*.psa C:\Downloads\Validation\Prestage\
FOR %%A IN (C:\Downloads\Validation\Prestage\*.psa) DO (
move %%A C:\Downloads\Validation\WIP\%%~nA.psa
ren C:\Downloads\Validation\WIP\%%~nA.psa *.csv
<call sqlloader now>
<call update script now>
<call validation script now>
)