对于我拍摄的每一个镜头,我都会生成 3 个具有相同名称和不同扩展名的文件:
BC_0100_210117.mov
BC_0100_210117.xls
BC_0100_210117.mp4
如果我导出 100 张照片,最终会得到 300 个文件。所有这些文件都导出到一个保存目录中
我希望能够将所有通用名称文件合并到它们自己的子目录中,并将该目录命名为与文件基名相同的名称,这样我最终会得到 100 个子目录,每个子目录都有 3 个匹配的文件。
答案1
for %i in (*.mov)do xcopy /I /L ".\%~ni.*" ".\%~ni\" && echo\del /q /f ".\%~ni.*"
⇅ ⇅
/L echo\
for %i in (*.mov)do xcopy /I ".\%~ni.*" ".\%~ni\" && del /q /f ".\%~ni.*"
1.使用For
循环,您可以列出一个扩展中的所有文件,并使用它来选择具有相同名称的文件:
for %%i in (*.mov)do...
2.您xcopy
可以通过将当前变量扩展%~i
到否ame()在循环中列出的文件,并将所有具有相同名称的文件复制到同一个文件夹%~Ni
Name.*
Name.*
...)do xcopy /i '.\%~ni.*" .\%~ni\
3.使用标志/I
和/L
在xcopy
命令:
/I If destination does not exist and copying more than one file,
assumes that destination must be a directory.
/L Displays files that would be copied.
4.使用&&
操作符将执行你的del
仅当命令xcopy
(以前的)returned 0
(成功地)
xcopy... && del /q /f ".\%~ni.*"
5.xcopy
测试此代码并检查来自和命令的输出echo\ del...
,如果您认为这没问题,只需删除来自/L
和xcopy
命令echo
即可删除您的文件......
for %i in (*.mov)do xcopy /I /L ".\%~ni.*" ".\%~ni\" && echo\del /q /f ".\%~ni.*"
⇅ ⇅
for %i in (*.mov)do xcopy /I /L ".\%~ni.*" ".\%~ni\" && echo\del /q /f ".\%~ni.*"
⇅ ⇅
for %i in (*.mov)do xcopy /I ".\%~ni.*" ".\%~ni\" && del /q /f ".\%~ni.*"
6对于批处理文件,使用:
@echo off
cd /d "%~dp0"
for %%i in (*.mov)do xcopy /I /L ".\%%~ni.*" ".\%%~ni\" && echo\del /q /f ".\%%~ni.*"
其他资源: