2014-02-28 50 views
0

我想獲得一個PowerShell腳本遞歸通過單個位置中的所有文件,並在特定字上做字符串替換。Powershell腳本來打開多個.SQL文件並做一個字符串替換一個特定的字

這是我迄今爲止,但我不能得到它的工作。

$configFiles=get-childitem C:\DataFolder\Folder1\*.SQL -rec 
foreach ($file in $configFiles) 
{ 
(Get-Content $file.PSPath) | 
Foreach-Object {$_ -replace "BCBS_MN", "XXXX_DB_NAME_XXXX"} | 
Set-Content $file.PSPath 

任何幫助,將不勝感激。謝謝 - 布賴恩

+0

不知道你是什麼意思,我很慢,當涉及到powershell。 你會建議替換我的整個部分?如果不是,你在哪裏添加它? –

+0

什麼不工作?你說「我無法工作」,但這可能意味着什麼。你想在$ configFiles中使用所有文件嗎?替換工作在所有?或者對於某些文件而不是其他文件?是否可以共享打印的任何錯誤? –

+0

當我嘗試瀏覽代碼時,我會看到以下行: Get-Content $ file.PSPath)| 它出錯了。 –

回答

1
Get-ChildItem "C:\Data Folder\Folder1\*.SQL" -recurse | ForEach { 
    (Get-Content $_.PSPath) -replace "BCBS_MN", "XXXX_DB_NAME_XXXX" | Set-Content $_.PSPath 
} 
+0

我想我在這裏得到一個錯誤,因爲路徑名中有空格。 PS中有一種方法來限定路徑嗎? –

+0

只要把它引用它...更新我的文章 – Cole9350

+0

好!有用!謝謝您的幫助。我將保留在我的PS工具文件夾中以供將來參考。 –

相關問題