2016-03-03 76 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

相关问题