批处理 %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号的无法备份,请教大神如何修改下?
展开
 我来答
qop_dob
2019-12-08 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:4046万
展开全部
不清楚你的实际文件,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为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
追问
大神收了我吧,太牛了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式