Perl в Windows: невозможно выполнить редактирование файла на месте: файл существует - PullRequest
0 голосов
/ 15 января 2019

Я уже прочитал этот и этот вопрос, который привел меня к:

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 голосов
/ 15 января 2019

Оказывается, файл был открыт (для чтения) другим процессом.

$ 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

Уничтожение процесса решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...