【发布时间】:2020-08-17 06:43:47
【问题描述】:
我有一个目录,其中包含数百个具有描述性、不同名称但扩展名始终相同的文件(示例):
LetItBe(TheBeatles).mid
LetItBe(TheBeatles).jpg
LetItBe(TheBeatles).ran
LetItBe(TheBeatles).zip
LetItBe(TheBeatles)Scan.mid
扫描总是在文件名的末尾并且总是相同的单词)*
下一组:
HeyJude(TheBeatles).mid
HeyJude(TheBeatles).jpg
HeyJude(TheBeatles).ran
HeyJude(TheBeatles).zip
HeyJude(TheBeatles)Scan.mid
我希望批次
随机选择一些文件(比如 10 个)和 将具有相同文件名的所有关联文件(即两个 MID、jpg、ran、zip)复制到不同的目录。
例如,如果其中一组文件缺少 jpg 文件或 mid 文件,我不希望批处理停止,而只是将现有文件复制到新文件夹并继续下一个随机选择的组。
我找到了一个批处理代码,可以随机移动一个 MIDI 文件,但我不确定如何插入指定所有文件名相同但扩展名不同的文件的代码也应该移动...
@echo off
set folder=C:\Test1
set destfolder=C:\Test2
for /f "delims=" %%C in ('dir /b /a-d "%folder%\*.mid" ^| find /c /v ""') do set /A num=%random% %% %%C
for /f "delims=" %%F in ('dir /b /a-d "%folder%\*.mid" ^| more +%num%') do set name=%%F & goto next
:next
echo (By the way, I chose %name% )
move "%folder%\%name%" "%destfolder%\%name%"
用户 Mofi 热心提供此帮助..
复制所有以相同字符串开头的文件的命令是copy 带有环境变量的“%FileName%.”“C:\Destination 文件夹” FileName 由随机选择文件之一的代码定义 组,例如,设置“FileName=HeyJude(TheBeatles)”。更多的 安全将使用两个 COPY 命令行:复制“%FileName%.*” "C:\Destination 文件夹" 并复制 "%FileName%Scan.mid" "C:\Destination Folder" 2>nul 如果有文件集 HeyJude(TheBeatles) 和 HeyJude(TheBeatles) Live 和文件集 HeyJude(TheBeatles) 应该 复制到目标文件夹。
但我不知道如何将其插入现有代码。我尝试将最后一行编辑为
move "%folder%\%name%*.*
然后根本没有文件被移动,系统找不到任何匹配的文件名。
帮助表示赞赏!
【问题讨论】:
标签: windows batch-file random cmd move