Windows批处理文件复制文件允许重命名文件扩展名但不复制副本
我想将远程计算机上的两个目录中的文件复制到Windows服务器上的单个目录。在一个目录中,我有扩展名为* .csv和其他文件* .asc。驱动器已经映射到UNC约定,所以我们具有诸如Z:\的驱动器,这些驱动器映射到另一台计算机上的特定文件夹。脚本可以驻留在远程计算机或Windows服务器上。Windows批处理文件复制文件允许重命名文件扩展名但不复制副本
然后处理具有* .asc扩展名的文件,然后需要重命名或移动到另一个目录(我们的软件)。与* .csv扩展名文件都没有改变
我尝试使用的Robocopy,这与移动开关工作
c:\scripts\ROBOCOPY.exe z:\ C:\files\Magellan /MOV /NP /R:2 /W:2 *.asc >c:\scripts\synchro.log
然而,源程序/软件要求这些* .ASC停留在原来的源位置 - 所以我不能使用移动开关。
我不想复制重复的* .asc文件 - 否则这些文件将被重新处理。
所以我只需要复制新文件 - 即以前没有复制过的文件,并将它们与另一个文件已被重命名或移动的位置进行比较!
@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"
)
尝试this.If语言设置有非英语不同,你可能需要更改适用于您language.Not知道这是否可以用ROBOCOPY或XCOPY(我需要阅读他们的帮助来完成的echo n
详细信息)。这将首先复制/移动.csv
文件,然后再移动.asc
文件。您可以更改订单和需要的地方,您可以用move
。y:\>(echo n | copy/-Y“y:\ ELISA0043.CSV”“C:\ files \ Magellan \”) 覆盖C:\ files \ Magellan \ ELISA0043.CSV? (是/否/全部):n 复制0个文件。 – user1044111
谢谢npocmaka我的语言是英语,第一部分工作完美。它会检测是否有相同名称的文件,而不会复制它 - 这正是需要的。我将如何添加写入日志文件? – user1044111
@nopocmaka,我有这个复制命令工作正常,但是当我发出移动时,我想在robocopy bat文件中的目标文件夹中重命名文件 'START/WAIT robocopy%EFM_EXPORT%EFM_TEMP%* .CFX/S/NP/R:5/W:5/XX/XD * PR * PA * TA * DC * Bypass/MOV/LOG:%EFM_MOVE%'我试着在代码中添加'%filename%''匹配日期格式,但没有工作'set filename = Robocopy_%date:〜-4,4% - %date:〜-7,2% - %date:〜-10,2%#%time :: = - %.txt'可以这样做。? – MethodMan
替换copy
命令选择您想要在这些行中运行这些行(并修复映射的驱动器号)。也就是说,我不确定你只是想将csv和asc文件复制到Magellan目录,因为你的问题提到将它们与另一个位置进行比较。然后
echo n|copy /-y z:\*.csv c:\files\Magellan
echo n|copy /-y y:\*.asc c:\files\Magellan\*.csv
'echo n | copy ..'不适用于通配符。将仅适用于第一个文件。尝试在控制台中执行它,并且会有复制的文件。更多信息 - > http://ss64.com/nt/copy.html – npocmaka
您尝试过多久了?它确实有效(至少在Win7和2008上) –
'的与* .ASC扩展名的文件处理,然后需要进行重命名或移动到另一个directory' - 如何将这些文件应该是renamed.It不是mentioned.My猜测改变扩展。 – npocmaka
是 - 扩展名被重新命名或可以被移动到子目录 – user1044111