我想使用另一种方法将我的文件列入白名单,以免被从文件夹中删除。
概念是将文件名添加到文本文件中,以防止其被删除。我该如何完成?到目前为止,这就是我所拥有的。我只是不想在将来遍历所有括号:
for %%i in ("universe\*.world") do (
if /i not "%%~nxi"=="alpha_-47760677_13528428_3442937_2_8.world" (
if /i not "%%~nxi"=="alpha_-91359870_-23985140_-2679670_4_2.world" (
if /i not "%%~nxi"=="beta_-10_-18_-22519438_9.world" (
if /i not "%%~nxi"=="alpha_71479806_30568958_-29806832_11_4.world" (
if /i not "%%~nxi"=="alpha_49727000_-95701173_-4914589_9.world" (
if /i not "%%~nxi"=="gamma_-98261021_73451017_-13446340_2_5.world" (
if /i not "%%~nxi"=="test2.world" (
if /i not "%%~nxi"=="test2.world" (
if /i not "%%~nxi"=="test2.world" (
if /i not "%%~nxi"=="test2.world" (
if /i not "%%~nxi"=="test2.world" (
if /i not "%%~nxi"=="test2.world" (
del /q "%%i"
)))))))))))))
)
假设我要从中提取列表的文本文件是whitelist.txt,并且每一行都有我要保留的文件名:
alpha_-47760677_13528428_3442937_2_8.world
alpha_-91359870_-23985140_-2679670_4_2.world
beta_-10_-18_-22519438_9.world
alpha_71479806_30568958_-29806832_11_4.world
alpha_49727000_-95701173_-4914589_9.world
gamma_-98261021_73451017_-13446340_2_5.world
或者甚至不添加“ .world”扩展名?
我试过使用此方法,但是当它寻找不删除的文件时,由于“找不到文件-C:\ Program”,由于程序文件(x86)中具有空格的空间的性质,它被切断了:
for /f %%i in ("whitelist.txt") do attrib +r %%i & del /q "universe\*.world" & for /f %%i in ("whitelist.txt") do attrib -r %%i
@ECHO OFF
SETLOCAL
FOR %%i IN (".\*.world") DO (
TYPE q20769624.txt|FINDSTR /i /b /e /L /c:"%%~ni" >NUL
IF ERRORLEVEL 1 ECHO DEL "%%i"
)
GOTO :EOF
q20769624.txt
您的白名单文件在哪里,没有.world
附录。
该批次将仅echo
删除文件。测试后,请删除ECHO
之前的关键字DEL
以激活删除功能。
进行了修改,以允许在文件名中保留空格,并且在数据文件末尾没有换行符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句