下面代码是关于对本目录及下级子目录中“批量删除含有指定字符串的行”的批处理代码,但是执行到最后重命名没在成功!即 代码 ren "%%ix" "%%i" 没起作用。请帮忙查找原因?(我手动改名后对比了文件里的内容都能达到目的。)
另外我将for语句换成 for /f "tokens=1 delims=" %%i in ('dir /s/a/b *.txt') do,也是出现同样问题!
但是若换成('dir /a/b *.txt'),即去掉dir的参数/s则能正确执行,但是却不能对下级子目录中的文件操作。 各位老大,谢谢帮忙。- @echo off
- rem 批量删除含有指定字符串的行
- set /p "str=请输入要删除行包含的字符串并回车:"
- echo.
- echo 开始操作,请稍后...
- for /r %%i in (*.txt) do (
- (findstr /v/r "%str%" "%%i">"%%ix") & (del /a /f /q "%%i") &( ren "%%ix" "%%i")
- )2>nul
- echo.
- echo 操作完成,按任意键结。。。。。。
- pause>nul
复制代码
|