PowerShell Get-Content来自多个目录和子目录的多个未知文件

时间:2016-03-03 22:00:49

标签: file powershell subdirectory

我在PowerShell中执行了以下脚本:

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

它按预期工作...... 它读取文件的内容并用另一个序列替换特定的字符序列...... 但是,我需要该脚本在同一初始目录的其他可能的子目录中标识具有不同名称的多个文件。

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中识别文件...有人可以帮助我吗?!

1 个答案:

答案 0 :(得分:2)

只需使用Get-ChildItem并将输出通过管道传输到您的命令中。您可以告诉Get-ChildItem使用-recurse递归目录,只返回-File的文件:

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