批量(如果存在)xcopy并为文件创建新文件夹

时间:2019-05-14 12:24:35

标签: batch-file if-statement xcopy

我对编码世界来说是全新的,所以请原谅任何愚蠢的问题。我的目的是在指定目录中找到文件,然后将它们复制并移动到另一个目录,但是为我要移动的文件创建一个新文件夹。

为提供一些其他信息,我将大量的wav文件从一台服务器移至另一台服务器。

我为此找到的代码:

If exist \\%DIR%\%Folder%\123456789.wav xcopy \\%DIR%\%Folder%\123456789.wav D:\%New Folder%\ /y

所以这将找到我想要的文件,将其复制,然后使用我的%New Folder%粘贴到新目录(该文件夹将不存在,我希望此命令在粘贴wav文件之前先创建它。

2 个答案:

答案 0 :(得分:1)

xcopy将为您创建目录结构(如果尚不存在),并且具有尾部反斜杠。

@echo off
set "NewFolder=D:\Some Destination\folder\"
set "DIR=someserver\Some Source folder"
set "Folder=Another Folder"
If exist "\\%DIR%\%Folder%\123456789.wav" (
      xcopy "\\%DIR%\%Folder%\123456789.wav" "%NewFolder%" /y
)

答案 1 :(得分:0)

不,不会。您尚未定义变量dir,文件夹和新文件夹。您的问题没有提供足够的信息来给出明智的答案。 See how to ask a good question
我要回答的问题就好像您使用的是Windows,并且想要一个批处理文件一样。

阅读后修改您的问题:

Copy files on a network:

How to write a windows batch file

How to use FOR

How to use ROBOCOPY

批处理文件:

@echo off
setlocal enableextensions
set dir=??????????
set folder=????????????
set "new folder=??????????"
for /f "tokens=*" %%F in ('dir /s /b "%dir%\%folder%\*.wav"') do %systemroot%\system32\xcopy.exe /sy "%%F" "d:\%new folder%\"
exit /b 

将批处理文件放入.wav文件所在的卷的根文件夹中并运行它。

如果可能像Windows快捷键一样简单: %systemroot%\system32\xcopy.exe /sy *.wav "d:\new folder\" 复制文件夹和子文件夹中的所有.wav文件,创建没有提示的新文件夹,覆盖前不提示。

但是,由于您要在网络上复制文件,因此更加复杂,并且由于获得的信息很少,因此只是在黑暗中拍摄。

更多信息:

xcopy /?

设置/? (定义变量)

/?

dir /? (找到文件)

cmd /?