Startpagina » hoe » Vervang tekst in gewone tekstbestanden vanaf de opdrachtregel

    Vervang tekst in gewone tekstbestanden vanaf de opdrachtregel

    Een zeer nuttige functie die ontbreekt in de Windows-bibliotheek met opdrachtregelhulpprogramma's, is de mogelijkheid tekst in tekstbestanden te vervangen. Een functie als deze kan worden gebruikt voor een verscheidenheid aan praktische taken die door veel systeembeheerders worden uitgevoerd, zoals:

    • Update configuratie / INI-bestanden om UNC-paden te vervangen.
    • Mass update gebruikersinformatie opgeslagen in INI-bestanden op een Terminal / Citrix-server.
    • Gebruik in combinatie met scripts om 'templated'-gegevens te implementeren en pas vervolgens waarden toe op de gekopieerde bestanden.

    Onze oplossing is een VBScript dat een interface heeft met de Visual Basic Replace-functie. Door dit script op een locatie in uw Windows PATH-variabele te plaatsen, heeft u nu deze functionaliteit tot uw beschikking.

    Toepassingen

    Eenmaal op uw systeem kunt u het script oproepen door eenvoudigweg de opdracht ReplaceText te gebruiken. Enkele voorbeelden illustreren hoe u dit kunt gebruiken:

    Vervang het woord "null" door "n / a" in het bestand C: DataValues.csv:

    ReplaceText "C: DataValues.csv" null nvt

    Scan alle INI-bestanden in de map C: Users (+ submappen) ter vervanging van alle exemplaren van "Server = Oud" met "Server = Nieuw" met een niet-hoofdlettergevoelige zoekopdracht:

    FORFILES / P "C: Gebruikers" / M * .ini / S / C "Cmd / C ReplaceText @path Server = Oude server = Nieuw / I"

    Scan alle CFG-bestanden in het profiel van de huidige gebruiker en vervang "p @ ssw0rd" door "PA $$ woRd" met een hoofdlettergevoelig zoeken:

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

    Zoals je hieronder kunt zien, is het script heel eenvoudig en kan het eenvoudig worden aangepast aan speciale situaties die je hebt. Als alternatief kunt u kopieën van het script maken die bepaalde waarden hardcoderen, zodat u de opdracht met een dubbelklik kunt uitvoeren en / of u deze eenvoudig aan anderen kunt verspreiden..

    Het script

    'Tekst vervangen
    'Geschreven door: Jason Faulkner
    'SysadminGeek.com

    'Dit script moet in een map worden geplaatst die is opgegeven in de PATH-variabele van uw systeem.

    'Gebruik (WScript):
    'ReplaceText Bestandsnaam OldText NewText [/ I]

    '/ I (optioneel) - Tekstvergelijking is niet hoofdlettergevoelig

    Stel oArgs = WScript.Arguments in

    intCaseSensitive = 0
    Voor i = 3 tot oArgs.Count-1
    If UCase (oArgs (i)) = "/ I" Then intCaseSensitive = 1
    volgende

    OFSO = CreateObject instellen ("Scripting.FileSystemObject")

    If Not oFSO.FileExists (oArgs (0)) Then
    WScript.Echo "opgegeven bestand bestaat niet."
    Anders
    Stel oFile = oFSO.OpenTextFile in (oArgs (0), 1)
    strText = oFile.ReadAll
    oFile.Close

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

    Stel oFile = oFSO.OpenTextFile in (oArgs (0), 2)
    oFile.WriteLine strText
    oFile.Close
    Stop als

    extra notities

    Windows gebruikt standaard WScript om VBScript-bestanden (VBS) uit te voeren. Het enige probleem dat dit kan veroorzaken is dat eventuele fouten en / of berichten van het script verschijnen als pop-upvensters. Voor een opdrachtregelprogramma is het het beste deze berichten in de console worden weergegeven. Er zijn een aantal manieren om dit te bereiken.

    Wijzig de standaardhandler van VBScript-bestanden in CScript door deze opdracht uit te voeren vanaf de opdrachtprompt (met beheerdersrechten):

    CScript // H: CScript

    Voer het script ReplaceText expliciet uit met de CSScript-opdracht:

    CScript "C: PathToReplaceText.vbs" // B Bestandsnaam OldText NewText [/ I]

    Als een speciaal geval impliceert het uitvoeren van ReplaceText van een batch-script meestal CScript als de gebruikte engine, ongeacht de standaard handler. U zult dit zeker willen testen voordat u op deze functionaliteit vertrouwt.

    Download ReplaceText Script van SysadminGeek.com