Batch file 如何在for循环中的'if'语句中创建一个布尔值,以检查文件名%%f前面是否存在术语?
我大约60%的歌曲集都有歌词。歌词的文件名与歌曲的文件名相同,在文件名前面加上Batch file 如何在for循环中的'if'语句中创建一个布尔值,以检查文件名%%f前面是否存在术语?,batch-file,Batch File,我大约60%的歌曲集都有歌词。歌词的文件名与歌曲的文件名相同,在文件名前面加上zzz\uz,扩展名为.lrc C:\Songs\album\song.mp3 C:\Songs\album\zzz_song.lrc 我现在像这样打印文件名 for /r "C:\Songs" %%f in (*.mp3 *.flac) do ( echo %%f ) 如何在for循环中的if语句中创建布尔值以检查歌词文件的存在 我在想 if exist zzz_%f echo zzz_%f.lr
zzz\uz
,扩展名为.lrc
C:\Songs\album\song.mp3
C:\Songs\album\zzz_song.lrc
我现在像这样打印文件名
for /r "C:\Songs" %%f in (*.mp3 *.flac) do (
echo %%f
)
如何在for循环中的if
语句中创建布尔值以检查歌词文件的存在
我在想
if exist zzz_%f echo zzz_%f.lrc
但是
zzz\uuf
将zzz\uf
预先添加到完整的文件路径(例如zzz\u C:\Songs\album\song.mp3
)中,并且将lrc
附加到现有扩展名中使用%%nxf
修饰符获取扩展名,使用%~pf获取当前文件路径
@echo off
@set prefix=zzz_
for /r "C:\Songs" %%f in (*.mp3 *.flac) do (
IF EXIST "%%~pf%prefix%%%~nxf" echo "%%~pf%prefix%%%~nxf"
)
命令变量:
for
允许几个修饰符与其变量一起使用,正如您的示例所示,%%~nf
只提供基本名称(没有路径,没有扩展名)。要了解更多信息,请从命令行运行的帮助,这里对它们进行了很好的解释 我已经知道%%~nf
的作用,我应该在if语句中使用什么布尔值?@user784637如果你知道,那么你有什么确切的问题?在exist
中组合修饰符和您的文本,以便它们形成适当的完全限定名,这就是您所需要做的。用你已经尝试过的内容编辑你的问题。一个糟糕的问题。
%%~nxf file name and extension;
%%~nf file name;
%%~xf file extension;
%%~pf file path;