Scripturi pentru cmd

Un subiect bine-cunoscut, dar slab iluminat este procesarea în interpretul de comandă a datelor CMD cu caractere speciale.
În cele mai multe situații, este complet rezolvată.
În plus față de aceasta periodic, există probleme de ieșire într-un fișier fără feed-ul de linie.






Cu câțiva ani în urmă (pe tablă) am elaborat un exemplu de cod care ilustrează în câteva detalii exemple de lucru posibil:

@ OFFOCHI DE ÎNCHIDERE
(ECHO Procesarea variabilelor cu caractere speciale "(", ")", "", "|", ">", "<")
(Set ECHO "AAA = mesaj () |<>comandă ")
SET "AAA = mesaj () |<>echipa "

(Afișare ECHO pe ecran cu ghilimele duble)
(ECHO "(ECHO" %% AAA %% "^))
(ECHO "% AAA%")

(ECHO Redirecționarea valorii unei variabile într-un fișier file.txt cu un feed de linie, adică cu CR / LF)
(ECHO cu înlocuirea fișierului.txt existent)
(ECHO SET / p "= %% AAA %%" ^file.txt ^ ECHO. ^> ^> file.txt)
SET / p "=% AAA%"file.txtECHO. >> file.txt

(ECHO Redirecționarea valorii unei variabile într-un fișier file.txt cu un feed de linie, adică cu CR / LF)
(ECHO adăugând la un fișier.txt existent)
(ECHO SET / p "= %% AAA %%" ^^> file.txt ^ ECHO. 1 ^> ^> file.txt)
SET / p "=% AAA%"> file.txtECHO. 1 >> file.txt

(ECHO Redirecționarea valorii unei variabile la fișierul file1.txt fără feed de linie, adică fără CR / LF)






(ECHO cu înlocuirea fișierului1.txt existent)
(ECHO SET / p "= %% AAA %%" ^file1.txt)
SET / p "=% AAA%"file1.txt

(ECHO Redirecționarea valorii unei variabile la fișierul file1.txt fără feed de linie, adică fără CR / LF)
(ECHO cu adăugarea la fișierul1.txt existent)
(ECHO SET / p "= %% AAA %%" ^^> file1.txt)
SET / p "=% AAA%"> file1.txt

(ECHO Afișați valoarea variabilei de pe ecran cu traducerea liniei, adică cu CR / LF)
(ECHO SET / p "= %% AAA %%" ^ (ECHO ^ (al doilea rând ECHO ^))
SET / p "=% AAA%" (Linia a doua a ECHO)

(ECHO Afișați valoarea variabilei pe ecran fără feed-ul de linie, adică cu CR / LF)
(ECHO SET / p "= %% AAA %%" ^ (ECHO ^ (al doilea rând ECHO ^))
SET / p "=% AAA%" (Linia a doua a ECHO)

Codarea scriptului de mai sus CP866.
Pentru referință, se recomandă efectuarea;)
Voi încerca să mă răspund în caz de întrebări.

Modul avansat de platformă încorporat pentru încorporarea în scripturi, permițând într-o formă convenabilă recepționarea datelor din registru pentru utilizare ulterioară (ca întotdeauna codarea scriptului CP866):


A adăugat posibilitatea de a citi parametrul "Implicit" din registru.
Lucrul verificat pe WinXP, Win7, Win7x64.

Se presupune că va funcționa corect pe toate sistemele începând cu WinXP și până la Win8 inclusiv.
Nu a fost luată în considerare lansarea non-nativ - adică, în cazul în care apelul la x64 CMD-script de-x86 mediu este o substituție de HKLM \ SOFTWARE \ la HKLM \ SOFTWARE \ Wow6432Node \ se întâmplă fără voia ta. Execuția directă a scriptului funcționează ÎNTOTDEAUNA în mediul nativ.

Shl - Ce trebuie să faceți cu "(valoarea parametrului nu este specificată)" pe sistemele Win7 (aparent Vista și mai vechi) pentru parametrul gol "Implicit" Nu am găsit încă o formă universală. Această valoare este atribuită automat unui parametru gol nescris și, din păcate, depinde de limba sistemului.







Articole similare

Trimiteți-le prietenilor: