for /f "delims=" %%i in ('dir /b')do if not "%%~i"=="%~nx0" ren "%%~i" "%%~ni(亲爱的)%%~xi" 这是原语句。这是.bat版。
这条批处理的含义是在每个文件名后面加上(亲爱的)。
但是在已经加上(亲爱的)文件名应当过滤掉,再次运行就会变成(亲爱的)(亲爱的)。
所以需要加个if,但是判断条件真心不会,就是获取文件名后四位或者文件名中包含字符这种,一直没找到。
要是回答的,建议自己试一下。
for /f "delims=" %%i in ('dir /b') do (
if not "%%~i"=="%~nx0" (
echo "%%~i" | find /i "(亲爱的)%%~xi" || (
ren "%%~i" "%%~ni(亲爱的)%%~xi"
)
)
)
if not "%%~i"=="%~nx0" (
echo "%%~i" | find /i "(亲爱的)%%~xi" || (
ren "%%~i" "%%~ni(亲爱的)%%~xi"
)
)
)
温馨提示:答案为网友推荐,仅供参考
第1个回答 2021-08-24
…… in ('dir /b^|find /i /v "亲爱的"') do ……