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

Съдържание:

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

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

Видео: Заменете текста в обикновени текстови файлове от командния ред
Видео: How to Center Icons without software on Windows 10 - YouTube 2024, Може
Anonim

Много полезна функция, която липсва в библиотеката с инструменти за команден ред на 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:Users” /M *.ini /S /C “Cmd /C ReplaceText @path Server=Old Server=New /I”

Сканирайте всички CFG файлове в потребителския профил на текущия потребител, замествайки "p @ ssw0rd" с "PA $$ woRd", като използвате търсене на малки букви:

FORFILES /P “%UserProfile%” /M *.cfg /S /C “Cmd /C ReplaceText @path p@ssw0rd PA$$woRd”

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

Скриптът

'Replace Text 'Written by: Jason Faulkner 'SysadminGeek.com

'This script should be placed in a folder specified in your system's PATH variable.

'Usage (WScript): 'ReplaceText FileName OldText NewText [/I]

' /I (optional) - Text matching is not case sensitive

Set oArgs = WScript.Arguments

intCaseSensitive = 0 For i = 3 to oArgs.Count-1 If UCase(oArgs(i)) = '/I' Then intCaseSensitive = 1 Next

Set oFSO = CreateObject('Scripting.FileSystemObject')

If Not oFSO.FileExists(oArgs(0)) Then WScript.Echo 'Specified file does not exist.' Else Set oFile = oFSO.OpenTextFile(oArgs(0), 1) strText = oFile.ReadAll oFile.Close

strText = Replace(strText, oArgs(1), oArgs(2), 1, -1, intCaseSensitive)

Set oFile = oFSO.OpenTextFile(oArgs(0), 2) oFile.WriteLine strText oFile.Close End If

допълнителни бележки

По подразбиране Windows използва WScript за изпълнение на VBScript (VBS) файлове. Единственият проблем, който това може да причини е, че всички грешки и / или съобщения от скрипта ще се появят като изскачащи прозорци. За инструмента за команден ред е най-добре тези съобщения да се показват в конзолата. Има няколко начина, по които можете да постигнете това.

Променете манипулатора по подразбиране на VBScript файлове в CScript, като стартирате тази команда от командния ред (с права на администратор):

CScript //H:CScript

Стартирайте скрипта ReplaceText изрично с помощта на командата CScript:

CScript “C:PathToReplaceText.vbs” //B FileName OldText NewText [/I]

Като специален случай, изпълняването на ReplaceText от партиден скрипт обикновено означава CScript като използван двигател, независимо от поддръжката по подразбиране. Определено ще искате да проверите това, преди да разчитате на тази функционалност.

Изтегляне на ReplaceText Script от SysadminGeek.com

Препоръчано: