Windows上的perl:无法对​​文件进行就地编辑:文件存在

时间:2019-01-14 21:03:16

标签: windows perl

我已经阅读了thisthis的问题,这些问题导致我:

for f in *.Xml
do
  perl -pi.bak -e 's/\x03//g' "$f"
done
rm *.bak

我正在使用for循环,而我正在使用-pi.bak。我仍然得到Can't do inplace edit on 20180619.Xml: File exists.。我还从Windows的cmd.exe而不是git bash尝试过此操作:

for %i in (*.Xml) do perl -pi.bak -e "s/\x03//g" "%i"

同一件事。有什么想法吗?

版本信息:

$ perl --version

This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-msys-thread-multi

我正在使用Windows 10 Pro的最新版本。

1 个答案:

答案 0 :(得分:3)

证明文件是由另一个进程打开(供读取)的。

$ handle 20180619.Xml

Nthandle v4.11 - Handle viewer
Copyright (C) 1997-2017 Mark Russinovich
Sysinternals - www.sysinternals.com

Rgui.exe           pid: 11520  type: File           488: C:\20180619.Xml
Rgui.exe           pid: 11520  type: File           530: C:\20180619.Xml
Rgui.exe           pid: 11520  type: File           680: C:\20180619.Xml

杀死进程可以解决问题。