批处理 %date:~8,2% 取值的疑问?
@echooffechoF|XCOPY/Fe:\自动备份数据\账套备份_FZSTD_01_%date:~8,2%.dat\\192.168.0.3\data_back\A...
@echo off
echo F | XCOPY /F e:\自动备份数据\账套备份_FZSTD_01_%date:~8,2%.dat \\192.168.0.3\data_back\AB_DATA\%date:~0,4%%date:~5,2%%date:~8,2%.dat /S /E /Y
我知道问题就是原文件的文件名按日期少个0,01 02 03 04.,,,,就是1-9号的。
按照上面的语句可以执行10号-月底的备份,但是1-9号的无法备份,请教大神如何修改下? 展开
echo F | XCOPY /F e:\自动备份数据\账套备份_FZSTD_01_%date:~8,2%.dat \\192.168.0.3\data_back\AB_DATA\%date:~0,4%%date:~5,2%%date:~8,2%.dat /S /E /Y
我知道问题就是原文件的文件名按日期少个0,01 02 03 04.,,,,就是1-9号的。
按照上面的语句可以执行10号-月底的备份,但是1-9号的无法备份,请教大神如何修改下? 展开
1个回答
展开全部
不清楚你的实际文件,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI
复制粘贴到记事本,另存为xx.bat,编码选ANSI
@echo off
rem 根据文件名称中的日期及当天的日期数复制备份文件
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "oldfolder=E:\自动备份数据"
set "newfolder=\\192.168.0.3\data_back"
if not exist "%newfolder%" md "%newfolder%"
>"%tmp%\v.v" echo;d=date:WSH.echo right(year(d),4) ^& right("0" ^& month(d),2) ^& right("0" ^& day(d),2)
for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\v.v"') do set today=%%a
set /a day=1%today:~-2%-100
echo;today=%today%
echo;day=%day%
if exist "%oldfolder%\账套备份_FZSTD_01_%day%.dat" (
copy "%oldfolder%\账套备份_FZSTD_01_%day%.dat" "%newfolder%\%today%.dat" /y
) else echo;"%oldfolder%\账套备份_FZSTD_01_%day%.dat" not found
echo;%#% +%$%%$%/%@% %z%
pause
追问
大神收了我吧,太牛了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询