[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. for /f "tokens=*" %%a in ('dir /s/b/a-d "..\a\"') do (
  3. if exist "%cd%\x\%%~nxa" (move /y "%cd%\x\%%~nxa" "%cd%\backup\%%~nxa")
  4. copy "%%~a" "%cd%\x\%%~nxa"
  5. )
复制代码

TOP

回复 4楼 的帖子

你的代码逻辑是不是错了,存在同名文件时应该copy到backup,你怎么写反了?
文件名有双引号的问题,请使用双引号。
Do All in Command Line

TOP

我把2楼的代码修改了一下:
  1. if exist a (copy a\*.* x\*.*) else (copy a\*.* backup\*.*)
复制代码
拷贝没问题,但是,如果有相同文件时,并没有对原文件备份至backup目录里,怎么回事?

还有个问题,如果目录中包含子目录含有空格文件名的文件怎么办?

[ 本帖最后由 alpha 于 2010-3-17 20:15 编辑 ]

TOP

是的,请注意2楼的代码,千万别犯他这样的错误。
Do All in Command Line

TOP

一搜就有了
if exist a (copy a backup\a) else (move a x\a)
请注意我的代码

TOP

返回列表