If-Koubou

Заменете текста в обикновени текстови файлове от командния ред

Заменете текста в обикновени текстови файлове от командния ред (Как да)

Много полезна функция, която липсва в библиотеката с инструменти за команден ред на Windows, е възможността да се замени текст в обикновен текстов файл. Функция като тази може да се използва за редица практически задачи, които много системни администратори изпълняват, като например:

  • Актуализирайте конфигурационните / INI файловете, за да подмените UNC пътеките.
  • Масовата актуализация на информацията за потребителя, съхранявана в INI файлове на терминален / Citrix сървър.
  • Използвайте заедно със скриптове, за да внедрите "шаблонирани" данни и след това да приложите стойности към копираните файлове.

Нашето решение е 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"

Както можете да видите по-долу, сценарият е много прост и лесно може да бъде променен, за да приспособи всякакви специални ситуации, които може да имате. Алтернативно, може да искате да създадете копия на скрипта, които да съдържат твърди кодове, така че да можете да изпълнявате командата с двойно кликване и / или да позволите лесно да я разпространявате на други хора.

Скриптът

"Замяна на текст
"Написано от: Джейсън Фоулкнер
"SysadminGeek.com

"Този скрипт трябва да бъде поставен в папка, посочена в променливата PATH на вашата система.

'Употреба (WScript):
'ReplaceText Име на файла OldText NewText [/ I]

'/ I (по избор) - При съвпадането на текста не се отнасят отделните букви

Задайте oArgs = WScript.Arguments

intCaseSensitive = 0
За i = 3 до oArgs.Count-1
Ако UCase (oArgs (i)) = "/ I" Тогава intCaseSensitive = 1
Следващия

Задайте oFSO = CreateObject ("Scripting.FileSystemObject")

Ако не е oFSO.FileExists (oArgs (0)) Тогава
WScript.Echo "Специализираният файл не съществува."
още
Задайте oFile = oFSO.OpenTextFile (oArgs (0), 1)
strText = oFile.ReadAll
oFile.Close

strText = Замени (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive)

Задайте oFile = oFSO.OpenTextFile (oArgs (0), 2)
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