Ersetzen Sie Text in Nur-Text-Dateien über die Befehlszeile

Inhaltsverzeichnis:

Video: Ersetzen Sie Text in Nur-Text-Dateien über die Befehlszeile

Video: Ersetzen Sie Text in Nur-Text-Dateien über die Befehlszeile
Video: Windows 11 nicht kompatibel? Systemanforderungen umgehen 2024, März
Ersetzen Sie Text in Nur-Text-Dateien über die Befehlszeile
Ersetzen Sie Text in Nur-Text-Dateien über die Befehlszeile
Anonim

Eine sehr nützliche Funktion, die in der Windows-Bibliothek von Befehlszeilentools fehlt, ist die Möglichkeit, Text in einfachen Textdateien zu ersetzen. Eine solche Funktion kann für eine Vielzahl von praktischen Aufgaben verwendet werden, die von vielen Systemadministratoren ausgeführt werden, z.

  • Aktualisieren Sie Konfigurations- / INI-Dateien, um UNC-Pfade zu ersetzen.
  • Massenaktualisierungsbenutzerinformationen, die in INI-Dateien auf einem Terminal / Citrix-Server gespeichert sind.

  • Verwenden Sie diese Option in Verbindung mit Skripts, um "Templated" -Daten bereitzustellen, und wenden Sie dann Werte auf die kopierten Dateien an.

Unsere Lösung ist ein VBScript, das mit der Visual Basic Replace-Funktion verbunden ist. Wenn Sie dieses Skript an einem Ort in Ihrer Windows PATH-Variablen ablegen, steht Ihnen diese Funktionalität jetzt zur Verfügung.

Verwendet

Sobald Sie sich auf Ihrem System befinden, können Sie das Skript einfach mit dem Befehl ReplaceText aufrufen. Einige Beispiele zeigen, wie Sie dies verwenden können:

Ersetzen Sie das Wort "null" durch "n / a" in der Datei C: DataValues.csv:

ReplaceText “C:DataValues.csv” null n/a

Scannen Sie alle INI-Dateien im Ordner C: Users (+ Unterverzeichnisse) und ersetzen Sie alle Vorkommen von „Server = Old“durch „Server = New“. Dabei wird zwischen Groß- und Kleinschreibung unterschieden:

FORFILES /P “C:Users” /M *.ini /S /C “Cmd /C ReplaceText @path Server=Old Server=New /I”

Scannen Sie alle CFG-Dateien im aktuellen Benutzerprofil und ersetzen Sie „p @ ssw0rd“durch „PA $$ woRd“. Dabei wird zwischen Groß- und Kleinschreibung unterschieden:

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

Wie Sie unten sehen können, ist das Skript sehr einfach und kann leicht modifiziert werden, um besonderen Situationen Rechnung zu tragen. Alternativ möchten Sie möglicherweise Kopien des Skripts erstellen, die bestimmte Werte hardcodieren, sodass Sie den Befehl mit einem Doppelklick ausführen und / oder ihn leicht an andere Benutzer verteilen können.

Das Skript

'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

Zusätzliche Bemerkungen

Standardmäßig verwendet Windows WScript, um VBScript-Dateien (VBS-Dateien) auszuführen. Das einzige Problem, das dies verursachen kann, ist, dass Fehler und / oder Meldungen aus dem Skript als Popup-Felder angezeigt werden. Für ein Befehlszeilentool sollten diese Meldungen am besten in der Konsole angezeigt werden. Es gibt mehrere Möglichkeiten, dies zu erreichen.

Ändern Sie den Standardhandler für VBScript-Dateien in CScript, indem Sie diesen Befehl an der Eingabeaufforderung (mit Administratorrechten) ausführen:

CScript //H:CScript

Führen Sie das ReplaceText-Skript explizit mit dem CScript-Befehl aus:

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

Als Sonderfall impliziert das Ausführen von ReplaceText aus einem Batch-Skript in der Regel CScript als Engine, die unabhängig vom Standardhandler verwendet wird. Sie werden dies auf jeden Fall testen wollen, bevor Sie sich auf diese Funktionalität verlassen.

Laden Sie das ReplaceText-Skript von SysadminGeek.com herunter

Empfohlen: