我需要对批处理文件做些什么....
我需要将一个文件夹复制到另一个文件夹,但是...
如果新文件夹存在,我需要验证新文件夹中的文件是否存在,然后我需要在此文件末尾使用«.old»重命名该文件,然后再复制新文件。我在 Java、php 等方面有丰富的编程经验,但不是真正的批处理文件......
我正在使用 java/php 的语法来解释我的问题....
set folderOrigin=d:\test1
set folderFinal=d:\test5
if EXIST %folderFinal% (
for (fileOrigin : folderOrigin){
variableNamefileOrigin = fileOrigin
for (fileFinal : folderFinal){
variableNamefileFinal = fileFinal
if (variableNamefileOrigin == variableNamefileFinal){
newvariable = variableNamefileFinal + ".old"
ren variableNamefileFinal newvariable
xcopy /s /q %folderOrigin%+%variableNamefileOrigin%
%folderFinal%+%variableNamefileFinal%
}
}
}
) else (
xcopy /s /q %dossierOrigine% %dossierDestinataire%
)
pause
谢谢大家!
假设源目录(“文件夹”是 GUI 中的工件;文件系统中的结构是“目录”)是%sourceFolder%
,目标目录是%finalFolder%
;并假设您只需要复制文件(而不是整个子树):
要循环浏览文件,%sourceFolder%
请使用for
循环:
for %%f in ("%sourceFolder%\*") do call :copyOneFile "%%~f"
exit /b
在子程序中,:copyOneFile
您将当前文件设为%1
. 要检查它是否存在,%finalFolder%
请使用if exist
,如果是,则重命名它,但在检查.old
文件是否已经存在之前不要:
:copyOneFile
if exist "%finalFolder%\%~nx1" (
if exist "%finalFolder\%~n1.old" del "%finalFolder\%~n1.old"
ren "%finalFolder\%~nx1" "%~n1.old"
)
现在您可以将文件从源文件夹复制到目标文件夹:
copy "%~1" "%finalFolder%
要了解结构%~nx1
等,请使用for /?
. 请注意,第二个参数ren
必须只有文件名,不允许使用路径。
如果您需要复制整个子树,则:
复制文件后,重做for /d
以获取目录。
使用适当的命令而不是del
和copy
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句