如何删除在多个目录中找到的文件中的一行

如何删除在多个目录中找到的文件中的一行

每个用户配置文件目录中都存在一个文件,我需要从每个用户配置文件目录中的文件中删除该行。我使用批处理脚本遍历每个用户配置文件目录,键入文件,使用 findstr 不显示该行,然后将输出重定向到其自身。无论出于什么原因,这都不会删除该行。

SET ProfileBase=%SystemDrive%\Documents and Settings

for /f "tokens=*" %%a in ('dir /b /ad-h "%ProfileBase%"') do type "%ProfileBase%\%%a\myfile" | findstr /v display >> :%ProfileBase%\%%a\myfile"

答案1

使用 win32 版本sedfind是不可能的吗?这些版本可以轻松实现*。此外,PowerShell 可能值得一看。

*) find /path/to/files -type f -iname 'filename' -execdir sed -i -e '/^exact line you want to disappear$/d' {} \;

相关内容