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