我的目标是找到指定目录上的文件,复制它们并将它们移动到另一个目录,但为我想要移动的文件创建一个新文件夹。
为了提供一些附加信息,我正在将大量 wav 文件从一台服务器移动到另一台服务器。
我为此找到的代码:
If exist \\%DIR%\%Folder%\123456789.wav xcopy \\%DIR%\%Folder%\123456789.wav D:\%New Folder%\ /y
这会找到我想要的文件,复制它,然后使用我的%New Folder%粘贴到新目录中(该文件夹将不存在,我希望此命令在粘贴 wav 文件之前创建它。
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
)
不,不会。您尚未定义变量 dir、文件夹和新文件夹。您的问题没有提供足够的信息来给出明智的答案。 了解如何提出好问题。
我将回答这个问题,就好像您正在使用 Windows 并且您想要一个批处理文件一样。
阅读后修改您的问题:
批处理文件:
@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 文件,创建新文件夹不提示,覆盖前不提示。
但是,由于您是在网络上复制文件,因此变得更加复杂,而且由于您提供的信息太少,这只是盲目的尝试。
更多信息:
x复制/?
设置/? (定义变量)
对于/?
目录/? (找到文件)
cmd /?