使用DSLR相机时,我将JPG存储在一个SD卡上,并将RAW文件存储在第二个SD卡上。目前,我正在将所有.JPG文件从一个SD卡复制到PC上的文件夹中,对其进行排序,然后删除不需要的文件。
第二张装有RAW文件的SD卡具有与JPG相同的文件名,但扩展名为.NEF。
我想在PC上创建剩余JPG文件的列表,然后仅将匹配的.NEF文件复制到PC。
我想创建一个批处理文件以使其自动化。
我可以通过使用
在目录中创建文件的简单列表dir /b /a-d > filelist.txt
但这会创建一个包含.JPG扩展名的文件名列表,大概我只需要不带扩展名的文件名,因此我可以使用该列表从另一个SD卡复制匹配的.NEF文件。
我尝试使用以下内容复制文件,但无法正常工作。
@echo off
set src_folder=J:\DCIM\101D7100
set dst_folder=D:\Photos\1\RAW
for /f "tokens=*" %%i in (filelist.txt) DO (
xcopy /S/E "%src_folder%\%%i" "%dst_folder%"
)
谢谢您的建议。
答案 0 :(得分:3)
通过使用%%~ni
来代替扩展名。假设您希望.NEF
文件的所有.JPG
文件都已经在目录中,而不是将其处理为文件,然后从文件中读取,直接进行处理即可。例如,假设您以前用于dir /b /a-d > filelist.txt
的目录是D:\JPEGs
,然后只需执行以下操作:
这只是获取JPG文件的名称并去除扩展名,然后我们复制该名称并添加.NEF扩展名。
@echo off
set "src_folder=J:\DCIM\101D7100"
set "dst_folder=D:\Photos\1\RAW"
for %%i in ("D:\JPEGS\*.jpg") do (
xcopy /S/E "%src_folder%\%%~ni.NEF" "%dst_folder%"
)
此外,请始终设置一个变量,在变量名之前和路径后使用双引号,以确保键入时没有隐藏的空格。