Re: Podmiana jednego ciągu znaków na drugi w pliku tekstowym - problem ze skryptem

Autor: Piotr B. \(pb2004\) <p_borkowski_at_nospamgazeta.pl>
Data: Wed, 20 Mar 2013 12:51:19 +0100
Message-ID: <kicbc8.6g4.1@pb2004.pl>
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original

Użytkownik "Przemysław Ryk" napisał w wiadomości grup
dyskusyjnych:1b98jh3quezfe$.dlg_at_maverick.przemekryk.no-ip.info...
>
>Witam
>
>Męczę się dzisiaj nad jednym problemem. Potrzebuję mianowicie dokonywać w
>pliku XML podmiany jednego ciągu znaków na inny. Co ważne - ma się to
>wykonywać jako część pliku BAT uruchamianego jako zdarzenie Harmonogramu
>zadań, wobec czego szukam narzędzia, które sobie z tym poradzi w trybie
>wsadowym.
>
>Wydawałoby się, że znalazłem - skrypt Replace.vbs ze strony
>http://stackoverflow.com/questions/60034/how-can-you-find-and-replace-text-in-a-file-using-the-windows-command-line-envir
>czy narzędzie http://findandreplace.codeplex.com/ wykonuje to, co powinno.
>Z
>jednym małym wyjątkiem, którego na razie nie potrafię obejść.
>
>Mianowicie - tekst źródłowy, który potrzebuję zmienić, ma postać:
>D:\Przemysław Ryk\_Dokumenty\Rok 2012
>Jedno i drugie testowane narzędzie niestety wykłada się na literze ł. :(
>Plik XML (jak zeznaje Notepad++) jest zakodowany w UTF-8 (bez BOM).
>Próbowałem skrypt uruchamiać z wiersza poleceń z przestawioną stroną kodową
>na UTF (chcp 65001) - niestety na nic się to zdało. :(
>
>Pytanie - jak to obejść?
>

Użyć polecenia Powershella:
(Get-Content -Encoding UTF8 .\test.txt) | foreach { $_ -replace
'D:\\Przemysław Ryk\\_Dokumenty\\Rok 2012','c:\foo\bar' } |
Set-Content -Encoding UTF8 .\test.txt

Rezultat:
PS C:\test> Get-Content -Encoding UTF8 .\test.txt; Write-Output
"================="; (Get-Content -Encoding UTF8 .\test.txt) | foreach {
$_ -replace 'D:\\Przemysław Ryk\\_Dokumenty\\Rok 2012',"c:\foo\bar" }|
Set-Content -Encoding UTF8 .\test.txt; Get-Content -Encoding UTF8 .\test.txt
D:\Przemysław Ryk\_Dokumenty\Rok 2012
=================
c:\foo\bar

-- 
Piotr Borkowski 
Received on Wed 20 Mar 2013 - 13:05:02 MET

To archiwum zostało wygenerowane przez hypermail 2.2.0 : Wed 20 Mar 2013 - 13:42:01 MET