2016-03-03 79 views
0

我在PowerShell中的以下腳本:PowerShell中獲取內容從多個目錄中的多個不明的文件和子目錄

(Get-Content text\text.txt).replace('ABC', 'abc') | Set-Content text\text.txt 

它按預期工作... 它讀取文件的內容,並取代了特殊的字符序列由另一個seguency ... 但是,我需要該腳本識別多個文件與不同名稱在其他可能的子目錄相同的初始目錄。

dir01\file_name.abc 
dir01\filename.def 
dir01\dir02\fi-le_na-me.ghi 
dir01\dor02\fi_le-na_me.jkl 
dir01\dir02\dir03\f-i-l-e_n-a-m-e.mno 
etc... 

我不知道哪個將是文件的名稱,也不是目錄!

在MSDOS我用下面的表達式去的文件有:

for %%F in (*.*) do ("winRAR.exe" "%%F") 

此批,壓縮文件的文件...它只是一個樣本!

我不知道如何通過PowerShel中的文件識別文件...有人可以幫助我嗎?!

回答

2

只需使用Get-ChildItem並將輸出傳送到您的命令中。你可以告訴Get-ChildItem改乘使用-recurse目錄,並只與-File返回文件:

Get-ChildItem dir01 -recurse -file | 
    foreach{(Get-Content $_.FullName).replace('ABC', 'abc') | Set-Content $_.FullName} 
+0

非常感謝你zdan,完美的作品......我如果若干思考有可能在同一時間更換兩個字符串? 'ABC','abc'和'DEF','def' – songa

相關問題