做个批处理BAT文件,谁知道怎么将某固定目录下的文件备份到指定盘符中啊?子目录比较长、还包含汉字。

请问怎么将固定目录下的文件备份到指定盘符中啊?因为该子目录比较长、还有汉字该怎么做?比如“C:\ProgramFiles\国税平推机打发票\DATA\”将备份结果再加上个... 请问怎么将固定目录下的文件备份到指定盘符中啊?因为该子目录比较长、还有汉字该怎么做? 比如 “C:\Program Files\国税平推机打发票\DATA\” 将备份结果再加上个当前日期或时间更好,以免覆盖前一文件,如:DATE20111020.dat。现在的问题是子目录超长还包含汉字XCOPY找不到源文件夹,有什么办法没有?着急哦! 展开
 我来答
wenrenwulei
2011-10-21 · TA获得超过1389个赞
知道小有建树答主
回答量:635
采纳率:0%
帮助的人:333万
展开全部
@echo off
set a=%date:~0,4%%date:~5,2%%date:~8,2%
echo d|xcopy C:\"Program Files"\"国税平推机打发票"\DATA D:\备份\DATE%a%.dat
pause

说明:你可以根据你的需要,在后面加 /参数
XCOPY的具体参数使用方法请在CMD里输入:XCOPY /?回车,就知道怎么用了。
由于你没有提具体要求,这里我没有加任何参数,参数加在第三行命令的最后哦,如:
echo d|xcopy C:\"Program Files"\"国税平推机打发票"\DATA D:\备份\DATE%a%.dat /D
这个例子加了一个参数/D,就是只复制比目标新的文件,因为D后面我没有给定日期,如果给定日期,就只复制给定日期的文件。格式:/D:m-d-y
另外:
代码第二行是,取系统当前日期给变量.
第三行中的 echo d| 这个要注意,是一个给XCOPY命令指定一个输入值,就是不需要输入D,直接定义路径为文件夹。你可把 echo d| 去掉,再运行就知道是什么意思了。
追问
你的程序我已经运行了,目的已经实现,结果将要采纳。找个行家不容易啊,所以再想问问加个时间还可以吗?比如备份结果\date201110201150 (意思是11点50备份)
追答
@echo off
set a=%date:~0,4%%date:~5,2%%date:~8,2%
for /f "delims= " %%i in ("%time:~0,2%·%time:~3,2%") do set b=%%i
echo d|xcopy C:\"Program Files"\"国税平推机打发票"\DATA D:\备份\DATE%a%-%b%.dat
pause

多加一个时间给变量就是,而且用 - 帮你把日期和时间隔开了,再用 · 号把点钟和分钟隔开了,不然看起来太费劲.不知满意否
另外注意第三行:
我之所以不直接写成:set b=%time:~0,2%·%time:~3,2%
这个是有原因,如果直接写成这样,会产生一个错误,就是下午时,这个批处理能用,上午用时会提示“无效的参数”,为什么呢,因为直接取时间给变量时,例如上午6:30 这样就会在6前面有一个空格,这样运行后,就会显示“无效的参数”,就是6前面的这个空格引起的。
所以我写成:
for /f "delims= " %%i in ("%time:~0,2%·%time:~3,2%") do set b=%%i
这样,不管是上午还是下午,都不会出错了,因为我把空格用FOR语句,替换掉了。
不信你可试试,把第三句直接写成:set b=%time:~0,2%·%time:~3,2%
然后把系统时间改成5:30试试。(就是系统时间的点钟数是单位数字时),就知道是怎么回事了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式