Редакторите на текстови файлове като Notepad и Notepad++ се използват за създаване на много различни типове файлове като субтитри, лог файлове, пакетни файлове, PowerShell скриптове и др. Когато редактор на текстови файлове може да създава тези файлове, той също може да ги редактира. Ако имате много текстови файлове, такива с разширение TXT и трябва да замените дума или няколко думи в тях, можете да го направите със скрипт на PowerShell. Скриптът го прави така, че да не се налага да отваряте поотделно всеки файл и след това да заменяте думата. Можете да използвате същия скрипт за други типове файлове, които могат да бъдат създадени с текстов редактор. Ето как можете да замените дума в множество текстови файлове.
Заменете Word в текстови файлове
Първо, трябва да поставите всичките си текстови файлове в една и съща папка. Скриптът ще проучи само една директория, когато се изпълнява, а не цялата ви система, поради което имате нужда от всички файлове на едно място.
Отворете нов файл на Notepad и поставете следното в него.
Get-ChildItem 'Path-to-files*.txt' -Recurse | ForEach { (Get-Content $_ | ForEach { $_ -replace 'Original-Word', 'New-Word' }) | Set-Content $_ }
Трябва да редактирате горния скрипт. Първо, редактирайте частта „Път към файловете“ с действителния път до папката с всички текстови файлове в нея. Второ, заменете „Original-Word“ с думата, която искате да замените. Накрая заменете „Нова дума“ с думата, с която искате да замените старата. Например, имам няколко текстови файла, всички имат думата „Публикуване“ в тях. Искам да заменя думата Post със Статия. Ето как ще изглежда скриптът, след като го редактирам, за да отговаря на моя сценарий.
Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt' -Recurse | ForEach { (Get-Content $_ | ForEach { $_ -replace 'Post', 'Article' }) | Set-Content $_ }
След като редактирате скрипта, запазете го с разширението на файла ps1. Уверете се, че сте променили типа на файла от текстови файлове на всички файлове в диалоговия прозорец за запазване като на Notepad. Стартирайте скрипта и той ще изпълни функцията за замяна.
Ако искате да използвате същия скрипт за XML или LOG файлове, редактирайте разширението на файла в първия ред. Например,
Това ще стане
Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt'
Това;
Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.xml'
Има едно нещо, което трябва да знаете за този скрипт; не съвпада думи с думи. Ако искате да замените всяко появяване на ‘the’ с ‘a’, то ще замени и ‘the’ в началото на ‘these’ и ‘there’. Това е недостатък на този скрипт. За да го заобиколите, можете да използвате Notepad++, който има опция за съвпадение на думата.