Windows 获取for循环中找到的文件的路径
我想循环浏览文件夹及其子文件夹,获取所有Windows 获取for循环中找到的文件的路径,windows,batch-file,for-loop,Windows,Batch File,For Loop,我想循环浏览文件夹及其子文件夹,获取所有.jpg文件,并在重命名当前找到的文件扩展名的文件上运行myapp.exemyapp.exe将完整文件路径作为输入,将重命名的文件作为输出,如下所示: myapp.exe C:\images\original\210_551_210-768--RJF3823klzw.jpg -o C:\images\original\210_551_210-768--RJF3823klzw.gif 我现在可以递归地打印*.jpg文件的完整路径 for /f "delim
.jpg
文件,并在重命名当前找到的文件扩展名的文件上运行myapp.exe
myapp.exe
将完整文件路径作为输入,将重命名的文件作为输出,如下所示:
myapp.exe C:\images\original\210_551_210-768--RJF3823klzw.jpg -o C:\images\original\210_551_210-768--RJF3823klzw.gif
我现在可以递归地打印*.jpg
文件的完整路径
for /f "delims=" %%i in ('dir /a-d/b/s *.jpg') do echo "%%i" "%%~ni.gif"
但是,这只打印第二个参数的文件名,而我希望包括找到的文件的路径
如何包含输出文件的路径,即myapp.exe的第二个参数
伪代码:
for /f "delims=" %%i in ('dir /a-d/b/s *.jpg') do myapp.exe "%%i" "<FULLPATH><FILNAME>.gif"
for/f“delims=“%%i in('dir/a-d/b/s*.jpg')do myapp.exe“%%i”“.gif”
如果myapp.exe
实际转换文件而不是简单地更改扩展名,则可以使用元变量扩展(请参见以获取/?
示例):
For/F“Delims=“%%A In('Dir/B/S/A-D*.jpg')Do myapp.exe“%%A”“%%~dpnA.gif”
如果仅更换扩展名,则只需使用重命名
命令:
For/F“Delims=“%%A In('Dir/B/S/A-D*.jpg')Do Ren“%%A”“%%~nA.gif”
在这两种情况下,您也可以将for循环更改为:
(*.jpg)中/R%%A的
您正在寻找“%%~dpni.gif”
?为什么要使用myapp.exe
,您不能只使用Rename
命令吗Do Ren“%%i”“%~ni.gif”
。的可能重复项