【问题标题】:perl on Windows: Can't do inplace edit on file: File existsWindows上的Perl:无法在文件上进行编辑:文件存在
【发布时间】:2019-06-08 21:23:47
【问题描述】:

我已经阅读了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。

【问题讨论】:

    标签: windows perl


    【解决方案1】:

    原来文件已被另一个进程打开(用于读取)。

    $ 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
    

    杀死进程可以解决问题。

    【讨论】:

      猜你喜欢
      • 2011-11-06
      • 1970-01-01
      • 2012-02-05
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 2012-03-06
      • 2015-11-08
      相关资源
      最近更新 更多