BAT 复制文件批处理?

把D盘 A文件夹(里面还有许多子文件和文件夹1、2、3等)里面的所有文件包括子文件夹和文件 复制到 E盘B文件夹中。每次运行BAT备份文件时,如果相同路径下(文件夹或子文件夹中)有同名文件 ,侧只询问一次是否跳过,选择跳过就跳过所有相同文件,复盖就全复盖,求BAT怎么写,谢谢

以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
/*&cls
@echo off
rem 将一个指定文件夹里的文件和子文件夹拷贝/复制/备份到另一个文件夹里并能询问选择是否跳过/覆盖同名文件
mode con lines=5000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set "oldfolder=D:\A"
set "newfolder=E:\B"
if not exist "%oldfolder%" (echo;"%oldfolder%" not found&pause&exit)
dir /a-d/b/s "%oldfolder%\">"%tmp%\t.t"
cscript -nologo -e:jscript "%~f0" "%oldfolder%" "%newfolder%" "%tmp%\t.t"
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
var fso=new ActiveXObject('Scripting.FileSystemObject');
var oldfolder=WSH.Arguments(0).replace(/\\$/, '');
var newfolder=WSH.Arguments(1).replace(/\\$/, '');
var s=[],f=false,p=false,t=0;
var file=fso.OpenTextFile(WSH.Arguments(2), 1);
while(!file.AtEndOfStream){
var line=file.ReadLine();
var newfile=newfolder+line.substring(oldfolder.length);
if(fso.FileExists(newfile)){f=true;};
s.push(line+'|'+newfile);
};
file.Close();
if(f){
WSH.echo('Skip the same files?[y/n]:');
var c=WSH.StdIn.ReadLine();
if(/^[yn]$/i.test(c)){
if(c.toLowerCase()=='y'){p=true;};
}else{
WSH.echo('Input error');
WSH.Quit();
};
};
for(var i=0;i<s.length;i++){
var arr=s[i].split('|');
if(fso.FileExists(arr[1])){
if(!p){
WSH.echo(arr[0]+' --> '+arr[1]);
}else{t=t+1;};
}else{
WSH.echo(arr[0]+' --> '+arr[1]);
};
};
WSH.StdErr.Writeline('total:'+s.length.toString()+' skip:'+t.toString());
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-10
你给命令后加上斜杠和问好,会给你显示如何做覆盖,如何跳过同名文件,如何比对修改或未修改文件,比如按时间比对。
另外,备份的话,可以用备份的话,可以用备份工具
相似回答