我有下面的代码,根据年份和月份将xml传输到文件夹,但有时文件已经复制到目标文件夹,如果文件已经存在,我如何通知代码删除该文件?
@ECHO off
set v_day_of_week=
set v_day=
set v_month=
set v_year=
set v_path=
set v_pathOri=d:\XmlRec\
set v_sub_path =
set v_copy_path = D:\xml\
SETLOCAL ENABLEEXTENSIONS
for /f "tokens=1" %%t in ('date/t') do (
set v_day_of_week=%%t
if "%%ta" LSS "a" (set toks=1-3) else (set toks=2-4)
)
::DEBUG echo toks=%toks%
for /f "tokens=2-4 delims=(-)" %%a in ('echo:^|date') do (
::DEBUG echo first token=%%a
if "%%a" GEQ "A" (
for /f "tokens=%toks% delims=.-/ " %%i in ('date/t') do (
set '%%a'=%%i
set '%%b'=%%j
set 'yy'=%%k
)
)
)
if %'yy'% LSS 100 set 'yy'=20%'yy'%
set Today=%'yy'%-%'mm'%-%'dd'%
ENDLOCAL & SET day_of_week=%v_day_of_week% & SET v_year=%'yy'%& SET v_month=%'mm'%& SET v_day=%'dd'%
::ECHO Today is Year: %V_Year% Month: [%V_Month%] Day: [%V_Day%]
set datestring=%V_Year%%V_Month%%V_Day%
::echo %datestring%
::echo day of week=%day_of_week%
if %V_Month% == 01 set v_sub_path=01-Janeiro
if %V_Month% == 02 set v_sub_path=02-Fevereiro
if %V_Month% == 03 set v_sub_path=03-Marco
if %V_Month% == 04 set v_sub_path=04-Abril
if %V_Month% == 05 set v_sub_path=05-Maio
if %V_Month% == 06 set v_sub_path=06-Junho
if %V_Month% == 07 set v_sub_path=07-Julho
if %V_Month% == 08 set v_sub_path=08-Agosto
if %V_Month% == 09 set v_sub_path=09-Setembro
if %V_Month% == 10 set v_sub_path=10-Outubro
if %V_Month% == 11 set v_sub_path=11-Novembro
if %V_Month% == 12 set v_sub_path=12-Dezembro
set v_path=%v_pathOri%%V_Year%\%v_sub_path%
if exist %v_pathOri%*.xml %v_path% (del %v_pathOri%*.xml)
else (
xcopy %v_pathOri%*.xml %v_path% /R
xcopy %v_pathOri%*.xml D:\xml\ /R
)
:EOF
我尝试插入下面的代码,但即便如此,执行批处理时,仍出现消息:
if exist %v_pathOri%*.xml %v_path% (del %v_pathOri%*.xml)
else (
xcopy %v_pathOri%*.xml %v_path% /R
xcopy %v_pathOri%*.xml D:\xml\ /R
'd:\XmlRec�4 -Janeiro' 未被识别为内部或外部命令, 可运行的程序或批处理文件。 “else”不被识别为内部或外部命令, 可运行的程序或批处理文件。 覆盖 D:\XmlRecebidos�4 -Janeiro�40117550000013036511650115590.xml(是/否/全部)?
“不被识别为内部/外部命令”的主要问题通常与 Windows 类型环境中的命令提示符或批处理文件执行有关