2014-02-05 159 views
0

對於我每天手動查找和替換任務之一,我想創建一個PowerShell腳本來查找和替換一些網絡位置,並用新的替換。替換PowerShell中的特殊字符

,如: -

地發現:\\Test\test

替換\\Test1\Test1

我能夠替換文本沒有任何特殊字符,但上面我得到的正則表達式錯誤。

並且在替換上面的字符串之後,我想將結果保存在一個文本文件中,該文件記錄已更新的文件的記錄。

+1

顯示,導致問題的表達式。在那裏唯一的正則表達式特殊字符是'\',在正則表達式中直接匹配反斜槓,只是轉義'\\' – stema

回答

0

在評論中看到你的例子,只需要一個Add-Content剪輯來完成它。這是我的方式。

$c = '\\filedep\iservershare\DCSVWA' 
$c = $c -replace [regex]::Escape('\\filedep\iservershare\DCSVWA'),('\\EGSISFS01\VolksWagon\DCSVWA') 
Add-Content C:\Output.txt $c 

我已經兩次運行它,該文件導致。

\\EGSISFS01\VolksWagon\DCSVWA 
\\EGSISFS01\VolksWagon\DCSVWA 
+0

謝謝K,但它沒有給我想要的輸出。 我想要列出所有位置由於上面的腳本已經更新的文件.. – AkashR

+0

什麼是你正在循環的每個文件的變量的名稱,或者你是否在流水線內?>>($ _) <<。無論哪種方式,只需要用附加內容中的$ c替換$ c,如果在管道中,我假設爲'Add-Content C:\ Output.txt $ _',否則如果命名變量,除了確保add內容發生在你的循環中。 –