Szöveg cseréje egyszerű szövegfájlokból a parancssorból

Tartalomjegyzék:

Szöveg cseréje egyszerű szövegfájlokból a parancssorból
Szöveg cseréje egyszerű szövegfájlokból a parancssorból

Videó: Szöveg cseréje egyszerű szövegfájlokból a parancssorból

Videó: Szöveg cseréje egyszerű szövegfájlokból a parancssorból
Videó: How to Check Hardware & Software Problems In Windows PC without Software - YouTube 2024, Április
Anonim

A parancssori eszközök Windows könyvtárából hiányzó nagyon hasznos funkció az a képesség, hogy egyszerű szövegfájlokba helyezi a szöveget. Egy ilyen funkció használható számos olyan gyakorlati feladat elvégzéséhez, amelyet számos rendszergazda végez, például:

  • A konfigurációs / INI fájlok frissítése az UNC útvonalak helyére.
  • Terminál / Citrix kiszolgálón INI fájlokban tárolt tömeges frissítés felhasználói adatok.

  • Használja a szkriptekkel együtt a sablonok adatainak telepítését, majd az átmásolt fájlokra vonatkozó értékeket.

A megoldás egy VBScript, amely interfész a Visual Basic Replace funkcióval. Ha ezt a szkriptet a Windows PATH változó helyére helyezi, akkor ezt a funkciót az Ön rendelkezésére áll.

felhasználások

Ha egyszer a rendszerre van állítva, akkor egyszerűen a ReplaceText paranccsal hívhatja meg a szkriptet. Néhány példa bemutatja, hogyan használhatja ezt:

Cserélje ki a "null" szót az "n / a" kifejezéssel a C: DataValues.csv fájlban:

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

Az összes INI-fájlt a C: Felhasználók (+ alkönyvtárak) mappában tárolja, a "Server = Old" összes előfordulását a "Server =

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

Az aktuális felhasználói profil összes CFG-fájljának szkennelése a "p @ ssw0rd" helyett a "PA $$ woRd" -vel helyettesítheti a kis- és nagybetűket érzékeny keresést:

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

Ahogy az alábbiakban látható, a szkript nagyon egyszerű, és könnyen módosítható, hogy megfeleljen az esetleges különleges helyzeteknek. Alternatívaként előfordulhat, hogy másolatokat készít a szkriptről, amely konkrét értékeket keményen határoz meg, így duplán kattintva végrehajthatja a parancsot és / vagy lehetővé teszi, hogy könnyen terjesztheti másoknak.

A script

'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

További megjegyzések

Alapértelmezés szerint a Windows a WScript-t használja a VBScript (VBS) fájlok futtatásához. Az egyetlen probléma, amit okozhat, a hibák és / vagy a parancsfájlról érkező üzenetek felugró ablakként jelennek meg. Egy parancssori eszköz esetében a legjobb, ha ezek az üzenetek megjeleníthetők a konzolban. Van néhány módja annak, hogy ezt megvalósíthassa.

A VBScript-fájlok alapértelmezett kezelőjének módosítása a parancsfájllal (adminisztrátori jogosultságokkal) a parancsfájl futtatásával:

CScript //H:CScript

Futtassa a ReplaceText szkriptet kifejezetten a CScript parancs használatával:

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

Különleges esetként a ReplaceText egy kötegelt szkript végrehajtása tipikusan azt jelenti, hogy a CScript az alapértelmezett kezelőtől függetlenül használt motor. Mindenképpen szeretné ezt tesztelni, még akkor is, ha erre a funkcióra támaszkodna.

Töltse le a ReplaceText szkriptet a SysadminGeek.com webhelyről

Ajánlott: