如果存在则批处理 xcopy 并为文件创建新文件夹

问题描述 投票:0回答:2

我的目标是找到指定目录上的文件,复制它们并将它们移动到另一个目录,但为我想要移动的文件创建一个新文件夹。

为了提供一些附加信息,我正在将大量 wav 文件从一台服务器移动到另一台服务器。

我为此找到的代码:

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

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

batch-file if-statement xcopy
2个回答
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
)

0
投票

不,不会。您尚未定义变量 dir、文件夹和新文件夹。您的问题没有提供足够的信息来给出明智的答案。 了解如何提出好问题
我将回答这个问题,就好像您正在使用 Windows 并且您想要一个批处理文件一样。

阅读后修改您的问题:

在网络上复制文件:

如何编写Windows批处理文件

如何使用FOR

如何使用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 文件,创建新文件夹不提示,覆盖前不提示。

但是,由于您是在网络上复制文件,因此变得更加复杂,而且由于您提供的信息太少,这只是盲目的尝试。

更多信息:

x复制/?

设置/? (定义变量)

对于/?

目录/? (找到文件)

cmd /?

© www.soinside.com 2019 - 2024. All rights reserved.