【发布时间】:2010-12-21 20:52:02
【问题描述】:
我试图在 Windows Server 2003 中运行以下命令,但 sed 会创建一堆文件,我无法从当前目录中的命令行删除这些文件。
for /R %f in (*.*) do "C:\Program Files\gnuwin32\bin\sed.exe" -i "s/bad/good/g" "%f"
有人有什么建议吗?神奇的是,我可以使用 Windows 资源管理器删除文件。
根据要求,以下是一些示例文件名:
- sed0E3WZJ
- sed5miXwt
- sed6fzFKh
还有更多故障排除信息...
- 命令提示符和批处理文件都会出现这种情况
- 如果我只需要在单个目录上运行 sed,那么我使用
sed "s/bad/good/g" *.*并且一切正常。唉,我还需要它来处理所有子目录。 - 我只安装了 Sed。
- Sed 正在创建文件
【问题讨论】:
-
如果您显示一个示例文件名会有所帮助。我用“c:\cygwin\bin\sed.exe”尝试了你的命令,除了关于反斜杠与斜杠的警告之外,它运行良好。
-
sed -i 如果文件一开始不是只读的,那么对我来说实际上效果很好。没有不可删除的临时文件剩余,也没有错误。我应该提到我将它与 find 结合使用,而不是在 for 循环中。