Много полезна функция, която липсва в библиотеката с инструменти за команден ред на Windows, е възможността да се замени текст в обикновен текстов файл. Функция като тази може да се използва за редица практически задачи, които много системни администратори изпълняват, като например:
Нашето решение е VBScript, който взаимодейства с функцията Visual Basic Replace. Като поставите този скрипт на място в променливата Windows PATH, вече имате тази функционалност на разположение на ваше разположение.
Веднъж в системата си, можете да се обадите на скрипта, като използвате командата ReplaceText. Няколко примера ще илюстрират начини, по които можете да използвате това:
Заменете думата "null" с "n / a" в файла C: DataValues.csv:
ReplaceText "C: DataValues.csv" null n / a
Сканирайте всички INI файлове в папката C: Users (+ sub directories), замествайки всички случаи на "Server = Old" със "Server = New", като използвате търсене,
FORFILES / P "C: Потребители" / M * .ini / S / C "Cmd / C ReplaceText @ път Сървър =
Сканирайте всички CFG файлове в потребителския профил на текущия потребител, замествайки "p @ ssw0rd" с "PA $$ woRd", като използвате търсене на малки букви:
FORFILES / P "% UserProfile%" / M * .cfg / S / C "Cmd / C ReplaceText @path p @ ssw0rd PA $$ woRd"
Както можете да видите по-долу, сценарият е много прост и лесно може да бъде променен, за да приспособи всякакви специални ситуации, които може да имате. Алтернативно, може да искате да създадете копия на скрипта, които да съдържат твърди кодове, така че да можете да изпълнявате командата с двойно кликване и / или да позволите лесно да я разпространявате на други хора.
"Замяна на текст "Този скрипт трябва да бъде поставен в папка, посочена в променливата PATH на вашата система. 'Употреба (WScript): '/ I (по избор) - При съвпадането на текста не се отнасят отделните букви Задайте oArgs = WScript.Arguments intCaseSensitive = 0 Задайте oFSO = CreateObject ("Scripting.FileSystemObject") Ако не е oFSO.FileExists (oArgs (0)) Тогава strText = Замени (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive) Задайте oFile = oFSO.OpenTextFile (oArgs (0), 2)
"Написано от: Джейсън Фоулкнер
"SysadminGeek.com
'ReplaceText Име на файла OldText NewText [/ I]
За i = 3 до oArgs.Count-1
Ако UCase (oArgs (i)) = "/ I" Тогава intCaseSensitive = 1
Следващия
WScript.Echo "Специализираният файл не съществува."
още
Задайте oFile = oFSO.OpenTextFile (oArgs (0), 1)
strText = oFile.ReadAll
oFile.Close
oFile.WriteLine strText
oFile.Close
Край Ако
По подразбиране Windows използва WScript за изпълнение на VBScript (VBS) файлове. Единственият проблем, който това може да причини е, че всички грешки и / или съобщения от скрипта ще се появят като изскачащи прозорци. За инструмента за команден ред е най-добре тези съобщения да се показват в конзолата. Има няколко начина, по които можете да постигнете това.
Променете манипулатора по подразбиране на VBScript файлове в CScript, като стартирате тази команда от командния ред (с права на администратор):
CScript // H: CScript
Стартирайте скрипта ReplaceText изрично с помощта на командата CScript:
CScript "C: PathToReplaceText.vbs" // B Име на файла OldText NewText [/ I]
Като специален случай, изпълняването на ReplaceText от партиден скрипт обикновено означава CScript като използван двигател, независимо от поддръжката по подразбиране. Определено ще искате да проверите това, преди да разчитате на тази функционалност.
Изтегляне на ReplaceText Script от SysadminGeek.com