1

我想将文件从远程计算机上的两个目录复制到 Windows 服务器上的单个目录。在一个目录中,我有扩展名为 *.csv 的文件,而在另一个目录中则是 *.asc。驱动器已使用 UNC 约定进行映射,因此我们有诸如 Z:\ 之类的驱动器,它们映射到另一台计算机上的特定文件夹。脚本可以驻留在远程计算机或 Windows 服务器上。

然后处理带有 *.asc 扩展名的文件,然后需要重命名或移动到另一个目录(我们的软件会这样做)。扩展名为 *.csv 的文件不会更改

我尝试使用 Robocopy,这与 MOVE 开关一起使用

c:\scripts\ROBOCOPY.exe z:\ C:\files\Magellan /MOV /NP /R:2 /W:2 *.asc >c:\scripts\synchro.log 

但是,源程序/软件要求这些 *.asc 保留在原始源位置 - 所以我不能使用移动开关。

我不想复制重复的 *.asc 文件 - 否则这些文件将被再次处理。

所以我只需要复制新文件 - 即以前没有复制过的文件,并将它们与文件已重命名或移动的另一个位置进行比较!

4

2 回答 2

1
@echo off

pushd Z:\

for %%# in (*.csv) do (
  echo n|copy /-Y "%%~f#" "C:\files\Magellan\"
)

for %%# in (*.asc) do (
  echo n|copy /-Y "%%~f#"   "C:\files\Magellan\%%~n#.csv"
)

试试这个。如果您的语言设置与英语不同,您可能需要更改echo n适用于您的语言的设置。不确定这是否可以通过 robocopy 或 xcopy 完成(我需要详细阅读他们的帮助)。这将复制/移动首先是.csv文件,然后是.asc文件。您可以更改顺序,在需要的地方可以将copy命令替换为move

于 2015-05-04T12:19:20.617 回答
0

选择您要运行这些行的顺序(并修复映射的驱动器号)。也就是说,我不确定您是否只想将 csv 和 asc 文件复制到 Magellan 目录,因为您的问题提到将它们与另一个位置进行比较。

echo n|copy /-y z:\*.csv c:\files\Magellan
echo n|copy /-y y:\*.asc c:\files\Magellan\*.csv
于 2015-05-04T13:21:24.260 回答