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

[文件操作] 批处理使用xcopy如何使其自动应答?

我要使用xcopy命令,有没有什么办法能使bat自动应答。标况下,用xcopy /y 复制文件时,如果遇到相同文件需要覆盖时,他会提示出“目录 or 文件”让你选择,有人给出了 echo f|xcopy /y 语句进行自动应答,有没有别的办法,不用这种方法,也能实现的(类似于命令开关)。
      
请问如何实现?

[ 本帖最后由 alpha 于 2010-4-26 23:07 编辑 ]

这是我的那段代码,您帮忙看看(红色部分)

原帖由 hanyeguxing 于 2010-4-27 17:00 发表

既然使用了/y,就不会出现覆盖提示,否则/y还有什么意义呢?所以“目录 or 文件”就不是覆盖提示。而且在批处理中使用xcopy,默认是覆盖的。
出现“目录 or 文件”是因为指向的目标不包含现有目录,且不以\结尾。 ...


@echo off&setlocal enabledelayedexpansion
set "ph=%cd%\tmp\"
for /f "tokens=*" %%a in ('dir /s/b/a-d tmp\') do (
set xx=%%~a
for /f "tokens=*" %%b in ("!ph!") do set xx=!xx:%%b=!
if exist "%cd%\!xx!" echo f|xcopy /y "%cd%\!xx!" "%cd%\backup\123\!xx!"&echo "!xx!">>1.txt
)
xcopy /e/y "%cd%\tmp" "%cd%"
pause

TOP

那麻烦大家能不能把下面的这段xcopy代码改为robocopy写成的?

  1. @echo off&setlocal enabledelayedexpansion
  2. set "ph=%cd%\tmp\"
  3. for /f "tokens=*" %%a in ('dir /s/b/a-d tmp\') do (
  4. set xx=%%~a
  5. for /f "tokens=*" %%b in ("!ph!") do set xx=!xx:%%b=!
  6. if exist "%cd%\!xx!" echo f|xcopy /y "%cd%\!xx!" "%cd%\backup\123\!xx!"&echo "!xx!">>1.txt
  7. )
  8. xcopy /e/y "%cd%\tmp" "%cd%"
  9. pause
复制代码


操作目的:

要将tmp目录下的所有文件(包括子目录)拷贝至当前目录,如果文件在复制过程中,如果遇到文件名相同的文件或文件夹(包括子目录),则先将原文件或文件夹(包括子目录)拷贝至本目录下的“backup\123”文件夹中,然后再进行覆盖复制。(上文所提到的“文件”均为无规则文件,而且包含大量含有空格的文件!

TOP

返回列表