批量复制文件无法正常工作

时间:2014-11-25 13:56:03

标签: windows batch-file

我有一个批处理脚本,它将首先删除从上一次运行中创建的所有文件,然后在子文件夹“script”中调用18个单独的批处理脚本。

18个脚本中的每个脚本运行一个SQL并将输出作为csv放在子文件夹“script”中,然后将结果复制到另一个子文件夹“Result”,删除原始输出。

当我手动分配18个批处理文件时,它们按要求工作。但是当我使用主调用脚本时,文件被复制到主文件夹而不是子文件夹“Result”

这是两个缩短版本

主脚本

del J:\BatchSQL\Result\ala.csv

start J:\BatchSQL\script\ALA.bat

exit

子脚本

Run SQLPlus call here

copy J:\BatchSQL\script\ALA.csv J:\BatchSQL\Result\ALA.csv

del J:\BatchSQL\script\ALA.csv

exit

1 个答案:

答案 0 :(得分:0)

由于缺乏完整信息,我建议main执行sub,并且就main脚本而言,创建文件的目标是当前目录,而当您手动执行sub时(可能来自J:\batchsql\script),然后 是创建文件的位置。

所以 - mainmain目录运行(无论你在哪里 - 你没说),因此SQLplus将报告存放在那里。 sub中的副本和del无效,因为主题文件不存在。

如果您使用当前目录sub手动运行J:\BatchSQL\script,那么SQLplus会将其输出放在哪里,而copy/del可以找到输出文件。

测试:

添加

echo %cd%
pause

sub的开头,查看报告的目录是否熟悉。