Windows批处理脚本中的文件未重命名

时间:2014-11-17 13:25:38

标签: batch-file

请帮忙!我有一个批处理文件,执行以下任务:  1)重命名计数器字段  2)创建两个变量,稍后将用于重命名两个单独的文件  3)打开SQL * Plus并启动Oracle脚本,启动两个单独的存储过程  4)从两个过程中移动并重命名后续的假脱机文件

第一个假脱机文件移动并重命名没有问题。第二个(具有更加劳动密集型的工作)不会移动或重命名。我尝试添加TIMEOUT并确保文件夹具有正确的权限。依然没有。我的批处理文件代码和Oracle脚本附在下面。

批处理文件


@echo off
 setlocal enabledelayedexpansion
 set filename="E:\Transfers\XXX\prod_directory\pullsched_seq2.dat"
 if exist "%filename%" del "%filename%"
 for /f %%A in (E:\Transfers\XXX\prod_directory\pullsched_seq.dat) do (
 set num=%%A
 set /a num+=1
 echo !num!>>"%filename%" 
 )
 set newnum=!num!
 set newproc=schedule%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%%TIME:~0,2%%TIME:~3,2%.dat
 del "E:\Transfers\XXX\prod_directory\pullsched_seq.dat"
 rename "E:\Transfers\XXX\prod_directory\pullsched_seq2.dat" "pullsched_seq.dat"
 rem start Oracle Script
 E:\oracle\product\10.2.0\db_1\BIN\SQLPLUSW.EXE
 logon/password @database @C:\Schedule\pullschedule0325.sql
 move C:\Schedule\schedule_today.txt E:\Transfers\ftpadmin\archive\schedule\%newnum%
 (this move works)
 move C:\Schedule\schedule_today2.txt E:\Transfers\XXX\output_directory\%newproc%
 (this one does not)

Oracle脚本(@C:\ Schedule \ pullsched0325.sql)


 rem @C:\Schedule\pullsched0325.sql
 set term off
 set feedback off
 set verify off
 set echo off
 set heading off
 set serveroutput on size 1000000
 set linesize 174
 spool C:\Schedule\schedule_today.txt
 execute SBT_SCHEDULE_LOAD_DATA
 spool C:\Schedule\schedule_today2.txt
 execute SBT_SCHEDULE_LOAD_SCHEDULES
 exit
 /

1 个答案:

答案 0 :(得分:0)

嗯 - 你知道,我认为时间和日期格式不是惯用的 - 它们取决于本地设置。如果不知道本地设置的确切细节,我们就会猜测。

我建议你只是

echo +%newproc%+
set之后

+只是为了显示任何空格 - 没有魔法。

如果结果字符串可能包含空格,则

move C:\Schedule\schedule_today2.txt "E:\Transfers\XXX\output_directory\%newproc%"

应该解决问题。

OR

set "newproc=%newproc: =0%"
move C:\Schedule\schedule_today2.txt "E:\Transfers\XXX\output_directory\%newproc%"

应该更加理解 - 用newproc替换0中的任何空格。

如果您的格式不正确 - 例如您使用带有小时数的抑制前导空格,则可能是newproc中的结果字符串包含无效的文件名字符,如:。< / p>

全部取决于您的日期/时间格式的详细信息。

当然,您的目标目录"E:\Transfers\XXX\output_directory\"存在......?