【发布时间】:2026-02-09 06:40:02
【问题描述】:
我有一个包含 .txt 文件的目录。我需要遍历它们并执行两个任务:将文件传递到 Oracle 的存储过程中并将其移动到存档目录中。出于某种原因,第二个任务对我不起作用。我错过了什么?
REM -----------------------------------------
REM first step changes file extension to .632
REM -----------------------------------------
for /f %%I in ('dir /b \\db01\load\*.txt') do (sqlplus.exe usr/pwd@DB @\\db01\sql\load.sql %%I)
for /f %%I in ('dir /b \\db01\load\*.632') do (move \\file01\archive)
【问题讨论】:
-
括号内的每个文件名输出都分配给元变量
%%I;因此,您需要提供%%I作为move命令的参数。第二行的for循环是否有原因?你不能只使用带有通配符的move吗? 在命令提示符处输入move /?以获取使用信息。 -
所以我可以这样做:
for /f %%I in ('dir /b \\db01\load\*.txt') do (sqlplus.exe usr/pwd@DB @\\db01\sql\load.sql %%I move %%I \\file01\archive)或for /f %%I in ('dir /b \\db01\load\*.txt') do (sqlplus.exe usr/pwd@DB @\\db01\sql\load.sql %%I) move \\db01\load\*.632 \\file01\archive
标签: batch-file for-loop move