我需要一个subj的bat文件。 我有以下内容:
for %%v in (*.*) do if not %%v == _clean.bat if not %%v == gc.dll if not %%v == dmc.exe if not %%v == lib.exe if not %%v == libunres.exe if not %%v == link.exe if not %%v == make.exe if not %%v == men.exe if not %%v == sc.exe if not %%v == scppn.exe if not %%v == sc.ini if not %%v == *.cpp if not %%v == *.c del %%v
它几乎没问题 - 它保存带有名称的文件,但它也删除了* .c和* .cpp文件,我不想删除它们。
解决!
@echo off
for %%v in (*.*) do (
if not %%v == _clean.bat if not %%v == gc.dll if not %%v == dmc.exe if not %%v == lib.exe if not %%v == libunres.exe if not %%v == link.exe if not %%v == make.exe if not %%v == men.exe if not %%v == sc.exe if not %%v == scppn.exe if not %%v == sc.ini if not %%~xv == .cpp if not %%~xv == .c del %%v)
答案 0 :(得分:1)
尝试以下方法:
@echo off
for %%v in (*.*) do (
if not %%v == _clean.bat if not %%v == gc.dll if not %%v == dmc.exe if not %%v == lib.exe if not %%v == libunres.exe if not %%v == link.exe if not %%v == make.exe if not %%v == men.exe if not %%v == sc.exe if not %%v == scppn.exe if not %%v == sc.ini if not %%~xv == .cpp if not %%~xv == .c del %%v)
有关详细信息,请使用help for
获取修改器的完整列表 - 有很多内容!
答案 1 :(得分:1)
我认为这种方式更简单,更容易维护:
@echo off
setlocal EnableDelayedExpansion
set "excludeFile= _clean.bat gc.dll dmc.exe lib.exe libunres.exe link.exe make.exe men.exe sc.exe scppn.exe sc.ini "
set "excludeExt= .cpp .c "
for %%v in (*.*) do (
if "!excludeFile: %%v =!" equ "%excludeFile%" if "!excludeExt: %%~Xv =!" equ "%excludeExt%" del %%v
)
请确保排除列表以空格开头和结尾。