我需要一个脚本来检查CDG文件的名称,如果在同一文件夹中不存在.mp3中具有相同名称的另一个文件,则删除cdg文件。
我想用这个简单的代码实现它:
@echo off
for /R %1 %%f in (*.cdg) do (
if exist %%~nf.mp3 (
del %%f
)
)
但它在IF构造中返回了语法错误。
我试图谷歌它,但似乎没有人有同样的问题(或者我在使用谷歌时非常糟糕)
有人可以告诉我我哪里错了吗?
答案 0 :(得分:0)
可能是由于包含空格的文件的名称。如果是,那么:
@echo off
for /R %1 %%f in (*.cdg) do (
if exist "%%~nf.mp3" (
del %%f
)
)
NB:引号
此外,您应该查看forfiles
(因为您只需要一行代码),但只有在使用Windows 7时才能使用。
莫纳
答案 1 :(得分:0)
给它一个旋转:
@echo off
for /R "%~1" %%f in (*.cdg) do (
if exist "%%~dpnf.mp3" (
del "%%f"
)
)
答案 2 :(得分:0)
好吧,如果您使用的是Windows 7,那么使用forfiles
可以轻松实现此目的:
forfiles /m "*.cfg" /c "cmd /c if exist @fname.mp3 del @path"
单独应该可以正常工作,并且它足够短,可以直接在cmd中输入。
莫纳