Batch file 从for循环中的变量中减去特定字符串
我正在使用FFMPEG制作一个批处理文件转换器 我在尝试从文件的完整链接中减去文件名以获取其所在文件夹的目录时遇到了一个问题,因此在转换文件后,可以将其放入该目录中 有人能告诉我如何从Batch file 从for循环中的变量中减去特定字符串,batch-file,ffmpeg,Batch File,Ffmpeg,我正在使用FFMPEG制作一个批处理文件转换器 我在尝试从文件的完整链接中减去文件名以获取其所在文件夹的目录时遇到了一个问题,因此在转换文件后,可以将其放入该目录中 有人能告诉我如何从目录中的字符串中减去文件名变量中的字符串吗 我的代码: @echo off SETLOCAL ENABLEDELAYEDEXPANSION set filetype=.flac for /R %%a in ("*%filetype%*") do ( set directory=%%a
目录中的字符串中减去文件名变量中的字符串吗
我的代码:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set filetype=.flac
for /R %%a in ("*%filetype%*") do (
set directory=%%a
set filename=%%~na%filetype%
set convdir=!directory:%filename%=!
echo !convdir!
pause
ffmpeg -i "%%a" "convdir%%~na.wav"
echo Converted %%a
)
echo Convertion Done!
pause
下面是一个未经测试的快速示例,我建议您如何执行任务:
@Echo关闭
setLocalEnableExtensions
设置“TreeRoot=”
设置“FileGlob=*.flac”
设置“convxtn=.wav”
对于/F“Delims=”%%G In(
““(设置PATHEXT=)”和“%\uuuuuAppDir\uuuu%where.exe”/F/R“%TreeBase%”“%FileGlob%”2>NUL”
)做(
回显将%%~G转换为%%~nG%convxtn%
“ffmpeg.exe”-i%%G%%~dpnG%convxtn%”
如果不是错误,则完成1级回波转换。
)
“%\uuuu APPDIR\uuuuu%timeout.exe”/T 5 1>NUL
只需根据需要将第3
行上的变量值调整为5
。我使用了
作为树根,因为它是当前目录。但是,请注意,您的代码没有定义当前目录,因此如果此目录应该在批处理文件本身的位置上根目录,您可能应该将其更改为%~dp0。
阅读for/?
关于变量修饰符的输出。您尝试的方法完全没有必要。