Заменить текст в текстовых файлах из командной строки

Оглавление:

Заменить текст в текстовых файлах из командной строки
Заменить текст в текстовых файлах из командной строки

Видео: Заменить текст в текстовых файлах из командной строки

Видео: Заменить текст в текстовых файлах из командной строки
Видео: Как удалить значок с панели задач Windows 10.Как открепить ярлык из панели задач - YouTube 2024, Ноябрь
Anonim

Очень полезной функцией, отсутствующей в библиотеке Windows инструментов командной строки, является возможность замены текста в текстовых файлах. Подобная функция может использоваться для множества практических задач, которые выполняют многие системные администраторы, например:

  • Обновите конфигурацию / INI-файлы, чтобы заменить UNC-пути.
  • Массовое обновление информации пользователя, хранящейся в файлах INI на сервере Terminal / Citrix.

  • Используйте совместно со сценариями для развертывания «шаблонных» данных, а затем применяйте значения к скопированным файлам.

Наше решение - VBScript, который взаимодействует с функцией замены Visual Basic. Поместив этот скрипт в место в переменной 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 с сайта SysadminGeek.com

Рекомендуемые: