[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理备份文件时如何把已存在的文件复制到指定目录?

当在执行Copy命令时,如果发现文件已经存在,则先将源文件备份到backup目录中,然后再进行Copy的覆盖工作, 请问代码应该加在什么地方,添加什么代码?

[ 本帖最后由 alpha 于 2010-2-19 18:09 编辑 ]

回复 20楼 的帖子

1,相对路径,你可以事先用set 定义一个相对路径,然后知道 ".."是上级目录 "."是本级目录即可

2,这里说的*.txt不一定是固定的,你可以用*.*代替,具体的看情况

3,有空格的话可以将这句for /f %%i in (d:\1.txt) do if exist %mdml%%%i move %mdml%%%i %pf%改为

for /f "delims=" %%i in (d:\1.txt) do if exist %mdml%"%%i" move %mdml%"%%i" %pf%

然后再试试看

再就是 copy 可以适当的改为 xcopy ,xcopy 的命令可以看帮助即可

[ 本帖最后由 hkzhc 于 2010-3-4 10:00 编辑 ]

TOP

原帖由 hkzhc 于 2010-3-2 09:16 发表
echo off
echo.
echo.    输入你所要复制原文件的绝对路径,如若要复制c盘1文件夹里的所有txt文件那么就输入:c:\1\*.txt
set /p yuanwj= :
echo.
echo.    输入你复制文件所存放的的绝对路径,如若要存到c盘1 ...

测试通过,但是回到我起初的问题;

1、使用相对路径;

2、有很多不规范的文件要做备份;

3、包含子目录与空格文件名。


怎么修改

TOP

修改17楼的

echo off
echo.
echo.    输入你所要复制原文件的绝对路径,如若要复制c盘1文件夹里的所有txt文件那么就输入:c:\1\*.txt
set /p yuanwj= :
echo.
echo.    输入你复制文件所存放的的绝对路径,如若要存到c盘1文件夹里那么就输入:c:\1\
echo.
set /p mdml= :
echo.
echo.    输入你的备份目录的绝对路径,如c:\1\
echo.
set /p pf= :
cls
if exist d:\1.txt ren d:\1.txt 111.txt
dir /b %yuanwj%>>d:\1.txt
for /f %%i in (d:\1.txt) do if exist %mdml%%%i move %mdml%%%i %pf%
copy %yuanwj% %mdml%
del d:\1.txt
if exist d:\111.txt ren d:\111.txt 1.txt
echo.    复制成功!
pause>nul

TOP

原帖由 BatCoder 于 2010-3-1 09:24 发表
我的意思是,我在帮你解决问题,请你提供足够的信息。

绝对路径也不行。您看看还会是什么问题导致的

TOP

回复 1楼 的帖子

dir /b 123 >>d:\123.txt
for /f %%i in (d:\123.txt) do move  ..\b\%%i ..\backup\
::然后再使用copy 命令即可
copy 123\*.* backup\


看看这段代码行不?路径要写好就ok 了

[ 本帖最后由 hkzhc 于 2010-3-1 15:39 编辑 ]

TOP

我的意思是,我在帮你解决问题,请你提供足够的信息。
Do All in Command Line

TOP

原帖由 BatCoder 于 2010-2-28 17:51 发表
请把你修改之后的代码、待备份的目录结构截图上来看看。

您的意思是说,您测试成功了?

哦对了,我的目录里面包含子文件夹和空格文件名

TOP

请把你修改之后的代码、待备份的目录结构截图上来看看。
Do All in Command Line

TOP

原帖由 BatCoder 于 2010-2-28 11:33 发表
把"123\*.*"换成你需要备份的文件夹的绝对路径

还是不行

TOP

把"123\*.*"换成你需要备份的文件夹的绝对路径
Do All in Command Line

TOP

原帖由 BatCoder 于 2010-2-27 22:02 发表
是任何显示都没有吗?

是的,什么都没有

TOP

回复 9楼 的帖子

是任何显示都没有吗?
Do All in Command Line

TOP

原帖由 BatCoder 于 2010-2-26 22:06 发表
4楼的代码运行之后显示的结果是什么?

运行时,没有错误显示,但是却没有效果,没做任何操作

TOP

4楼的代码运行之后显示的结果是什么?
Do All in Command Line

TOP

返回列表