我一直在尝试创建这个基本上镜像两组文件夹及其内容(包括子文件夹)的脚本,但只复制比已经存在的文件更新的文件.我尝试通过编写vbscript来做到这一点,但事实证明我手册需要扫描每个子文件夹然后它的内容.然后该子文件夹的内容也等等.
所以我想知道是否有人知道这是否可以用Robocopy完成?
我有这个代码,感谢这个论坛:
@echo on
set source="R:\Contracts\"
set destination="R:\Contracts\Sites"
::Not sure if this is needed
::It guarantees you have a canonical path (standard form)
for %%F in (%destination%) do set destination="%%~fF"
for /r %source% %%F in (.) do if "%%~fF" neq %destination% ROBOCOPY "%%F" %destination% *.srt *.pdf *.mp4 *.jpg /COPYALL /R:0
Pause
Run Code Online (Sandbox Code Playgroud)
如果文件存在,我不确定上面的代码是否具有"SKIP命令",如果文件大小相同,我不确定是否跳过.
400个文件似乎需要很长时间.我想尽快将它改为40000文件.
谢谢.
我想在两台计算机之间同步文件夹,一台用XP,另一台用Vista.我希望镜像这两个文件夹,但安全设置和文件夹设置除外.据我所知,/MIR
switch将删除目标文件夹中的任何"额外"文件,其中包括desktop.ini文件.我可以避免复制desktop.ini文件/XA:SH
如何防止robocopy删除目标desktop.ini文件?
如果我必须做任何额外的脚本,我更喜欢PowerShell.但我希望robocopy可以自己做.
谢谢.
在 Windows 7 上运行的 VS2010 中,在 postbuild 事件中将文件复制并始终覆盖到目标目录的最佳方法是什么。
目前我正在使用
robocopy $(SolutionDir) $(TargetDir) "Morning Report Template.xlsm"
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用 Xcopy(带 /Y),甚至只是简单的副本。但我还没有让它正常工作。要么我收到构建错误,例如“命令“robocopy C:\Working\Projects\SAFEXQueryForm\C:\Working\Projects\SAFEXQueryForm\SAFEXQueryForm\bin\Release\“Morning Report Template.xlsm””以代码 1 退出。” 否则它只是不复制。
我需要它每次都复制和覆盖,没有构建错误,我也更愿意更改我知道 Robocopy 无法做到的文件名。
我究竟做错了什么?什么是最好的方法来做到这一点?
我想通过我的批处理文件确保我在系统上安装了robocopy.是否有可能问一些类似robocopy的东西......知道它是否安装在我所在的系统中.
MSDOS move sourceDirectory destinationDirectory
命令何时sourceDirectory
和destinationDirectory
在同一个硬盘驱动器上只是移动一些链接,并没有实际将所有文件复制到新位置,然后删除它们.
当和在同一个硬盘驱动器上时,是否robocopy sourceDirectory destinationDirectory /mov
像MSDOS move
命令一样?sourceDirectory
destinationDirectory
我能够找到的所有robocopy文档在这一点上都不清楚.
我正在运行64位Windows7以防万一.
我的C#Windows服务应用程序通过SMB,FTP或SSH整天通过网络复制大量文件.要做文件副本,我只需使用System.IO.File.Copy
..NET Framework在这里执行哪个命令?是复制吗?也许xcopy?这在不同的Windows版本上有所不同吗?我还读到了robocopy,但似乎没有API.是否值得使用P/Invoke与xcopy或robocopy而不是简单的副本?目前我对我的情况表示怀疑.
在将来的版本中,我必须将所有文件复制到两个远程目录而不是一个.那么当我通过复制文件时会发生什么
File.Copy("c:\ test.txt","\\ server1\dir1\test.txt")
然后打电话
File.Copy("\\ server1\dir1\test.txt","\\ server1\dir2\test.txt")
文件是否会从我的服务器复制两次到目标服务器?据我所知,我的电脑说将文件从A复制到B,所以文件将从A转移到我的机器到B,对吗?
我想用类似的东西将其复制到通配符目的地 robocopy c:\source\ c:\*estination\
我可以cd
给c:\*estination\
然后robocopy c:\source\ .
但什么是一些其他的技术?
我正在运行robocopy进程,并生成如下日志:
robocopy "\\server1\reports" "c:\temp" /LOG+:"c:\scripts\logs\robolog-reports.txt"
Run Code Online (Sandbox Code Playgroud)
日志文件创建良好。有什么方法可以限制日志文件的文件大小,理想情况下滚动日志以便仅保存最新的XX行或XX字节吗?我想一次完成所有操作(自动复制),并进行自动复制活动的最后几天。
谢谢
我正在使用较旧的版本,robocopy
即使已设置/NJH
和/NJS
参数,该版本也会在日志中包含百分比。因此,我想从日志中删除百分比:
72880735 H:\ 1.txt 100% 33038490 H:\ 10.txt 100% 64878348 H:\ 2.txt 100% 25875810 H:\ 3.txt 0% 100%
我尝试过
(Get-Content $logfile) | Where-Object {
$_ -match '[\s](\d{1,})(\s+)(\w\W\W.+)'
} | Set-Content $logfile
Run Code Online (Sandbox Code Playgroud)
但这导致
72880735 H:\ 1.txt 33038490 H:\ 10.txt 64878348 H:\ 2.txt 25875810 H:\ 3.txt 0%
所以我去除了100%,但没有去除0%。