2016-03-03 9 views
0

Я следующий сценарий в PowerShell:PowerShell Get-Content на нескольких файлов с неизвестными нескольких каталогов и подкаталогов

(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 ... Может ли кто-нибудь помочь мне с этим ?!

ответ

2

Просто используйте Get-ChildItem и проведите вывод в вашу команду. Вы можете сказать, Get-ChildItem в рекурсию каталогов с помощью -recurse и возвращать только файлы с -File:

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

большое спасибо Zdan, прекрасно работает ... Я был thinkig, если можно было бы заменить две строки в то же время? 'ABC', 'abc' и 'DEF', 'def' – songa

 Смежные вопросы

  • Нет связанных вопросов^_^