Główna » jak » Zamień tekst na zwykłe pliki tekstowe z wiersza poleceń

    Zamień tekst na zwykłe pliki tekstowe z wiersza poleceń

    Bardzo przydatną funkcją, której brakuje w bibliotece narzędzi wiersza poleceń systemu Windows, jest możliwość zamiany tekstu w pliki tekstowe. Taka funkcja może być używana do wielu praktycznych zadań, które wykonuje wielu administrator systemu, takich jak:

    • Zaktualizuj pliki konfiguracyjne / INI, aby zastąpić ścieżki UNC.
    • Informacje o aktualizacji zbiorczej przechowywane w plikach INI na serwerze terminala / Citrix.
    • Używaj w połączeniu ze skryptami do wdrażania "szablonowych" danych, a następnie stosuj wartości do kopiowanych plików.

    Nasze rozwiązanie to VBScript, który współpracuje z funkcją Visual Basic Replace. Umieszczając ten skrypt w lokalizacji w zmiennej PATH systemu Windows, masz teraz dostęp do tej funkcji.

    Używa

    Po uruchomieniu systemu można wywołać skrypt za pomocą polecenia ReplaceText. Kilka przykładów pokaże sposoby na wykorzystanie tego:

    Zastąp słowo "null" przez "n / a" w pliku C: DataValues.csv:

    ReplaceText "C: DataValues.csv" null n / a

    Zeskanuj wszystkie pliki INI w folderze C: Users (+ podkatalogi), zastępując wszystkie wystąpienia "Server = Old" za pomocą "Server = New", używając wyszukiwania niewrażliwego na wielkość liter:

    FORFILES / P "C: Users" / M * .ini / S / C "Cmd / C ReplaceText @path Serwer = Stary serwer = Nowy / I"

    Zeskanuj wszystkie pliki CFG w profilu bieżącego użytkownika, zastępując "p @ ssw0rd" przez "PA $$ woRd" za pomocą wyszukiwania uwzględniającego wielkość liter:

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

    Jak widać poniżej, skrypt jest bardzo prosty i można go łatwo zmodyfikować, aby uwzględnić wszelkie szczególne sytuacje, jakie możesz mieć. Alternatywnie możesz chcieć utworzyć kopie skryptu, które kodują poszczególne wartości, abyś mógł wykonać polecenie podwójnym kliknięciem i / lub pozwolić na łatwe rozpowszechnienie go innym.

    Scenariusz

    "Zamień tekst
    "Napisane przez: Jason Faulkner
    "SysadminGeek.com

    "Ten skrypt powinien zostać umieszczony w folderze określonym w zmiennej PATH twojego systemu.

    "Użycie (WScript):
    "ReplaceText FileName OldText NewText [/ I]

    '/ I (opcjonalnie) - W dopasowaniu tekstu nie jest rozróżniana wielkość liter

    Ustaw oArgs = WScript.Arguments

    intCaseSensitive = 0
    Dla i = 3 do oArgs.Count-1
    Jeśli UCase (oArgs (i)) = "/ I" Następnie intCaseSensitive = 1
    Kolejny

    Set oFSO = CreateObject ("Scripting.FileSystemObject")

    Jeśli nie oFSO.FileExists (oArgs (0)) Następnie
    WScript.Echo "Określony plik nie istnieje."
    Jeszcze
    Ustaw oFile = oFSO.OpenTextFile (oArgs (0), 1)
    strText = oFile.ReadAll
    oFile.Close

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

    Ustaw oFile = oFSO.OpenTextFile (oArgs (0), 2)
    oFile.WriteLine strText
    oFile.Close
    Koniec, jeśli

    Dodatkowe uwagi

    Domyślnie system Windows używa języka WScript do wykonywania plików VBScript (VBS). Jedyny problem, jaki może to spowodować, to wszelkie błędy i / lub wiadomości ze skryptu będą wyświetlane jako okna podręczne. W przypadku narzędzia wiersza poleceń najlepiej jest wyświetlać te komunikaty w konsoli. Istnieje kilka sposobów na osiągnięcie tego celu.

    Zmień domyślny moduł obsługi plików VBScript na CScript, uruchamiając to polecenie z wiersza polecenia (z prawami administratora):

    CScript // H: CScript

    Uruchom jawnie skrypt ReplaceText za pomocą polecenia CScript:

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

    W szczególnym przypadku wykonywanie ReplaceText ze skryptu wsadowego zazwyczaj wymaga użycia CScript jako silnika, niezależnie od domyślnej procedury obsługi. Na pewno będziesz chciał to przetestować przed skorzystaniem z tej funkcji.

    Pobierz ReplaceText Script z SysadminGeek.com