我在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中识别文件...有人可以帮助我吗?!
答案 0 :(得分:2)
只需使用Get-ChildItem
并将输出通过管道传输到您的命令中。您可以告诉Get-ChildItem
使用-recurse
递归目录,只返回-File
的文件:
Get-ChildItem dir01 -recurse -file |
foreach{(Get-Content $_.FullName).replace('ABC', 'abc') | Set-Content $_.FullName}