需要从命令提示符中清除已被进程锁定的日志文件的内容。当我尝试执行
echo "" > 文件名
我收到一条错误消息,该文件已被某个进程锁定。
我甚至无法在记事本中打开该文件、清除内容并保存。
目前我正在 notepad++ 中打开文件并快速按 CTRL + a、CTRL+x、CTRL+s :)
有没有办法从 cmd 完成此操作?notepad++ 为何能够处理编辑和保存,而记事本却不能?
答案1
您可以使用 Unlocker 之类的程序来释放锁: http://www.emptyloop.com/unlocker/
答案2
我发现对我来说最好的解决方案是 Powershell> Clear-Content filename.log https://technet.microsoft.com/en-us/library/ee156808.aspx
该
Clear-Content
cmdlet 可让您清除文件内容而不删除文件本身。例如,假设您运行以下命令:
Clear-Content c:\scripts\test.txt
当您执行该命令时,文件 Test.txt 仍将位于文件夹 C:\Scripts 中;只是文件中不包含任何类型的数据。
Clear-Content 可以使用通配符。此命令将删除 C:\Scripts 中所有文件名以字母 E 开头的文件的内容:
Clear-Content c:\scripts\e*
您不仅限于删除文本文件。以下命令将删除 Excel 电子表格中的所有数据:
Clear-Content c:\scripts\test.xls
此命令将删除 Word 文档 C:\Scripts\Test.doc 的内容:
Clear-Content c:\scripts\test.doc
答案3
锁定的文件无法删除,但可以重命名。这可能是因为 Notepad++ 使用了“安全保存”——创建一个包含新内容的临时文件,然后快速删除原始文件(此步骤可能失败)并将临时文件重命名为原始名称。