File bat interessanti. Comandi del file bat. Come creare un file bat? Comandi di base. Come eseguirne un altro da un file bat

L'utilizzo di un'interfaccia grafica nei sistemi operativi oggi sembra essere qualcosa di scontato e del tutto naturale, ma non è sempre stato così. Il primo sistema operativo, MS DOS, sviluppato da Microsoft, non aveva una GUI ed era controllato inserendo comandi di testo. Sono passati quasi 40 anni da allora, ma il linguaggio di scripting da riga di comando è ancora popolare, e non solo tra gli sviluppatori.

La riga di comando non è così comoda, ma con il suo aiuto puoi eseguire operazioni che non sono possibili dalla GUI. D'altra parte, avviare ogni volta la console, inserendovi i comandi uno dopo l'altro, tutto ciò rallenta notevolmente il lavoro. Tuttavia, puoi semplificare notevolmente l'attività creando un file bat o semplicemente un file batch: un file di testo con estensione BAT contenente un elenco di istruzioni elaborate dall'interprete dei comandi CMD. Tali file vengono utilizzati per automatizzare varie attività, ad esempio per eliminare file temporanei in base a una pianificazione o avviare programmi.

Come creare un file con estensione BAT

Quindi, come creare un file bat in Windows 7/10? Molto semplice. Per fare ciò, avrai bisogno di un editor di testo e della conoscenza delle basi della riga di comando. Puoi usare Blocco note o, ancora meglio, Notepad++, poiché quest'ultimo ha l'evidenziazione della sintassi. Crea un nuovo file nell'editor, seleziona "Salva con nome" dal menu "File", dai un nome allo script futuro e seleziona "File batch (*bat; *cmd; *nt)" nel menu "Tipo file" -elenco in basso.

Se desideri utilizzare Blocco note per creare un file bat, devi assegnare manualmente l'estensione e selezionare "Tutti i file" nell'elenco "Tipo di file".

Come puoi vedere, creare un file con estensione bat non è difficile, tuttavia ci sono alcune sottigliezze qui. Nei file di comando non è possibile utilizzare interruzioni di riga; la codifica del file bat deve essere impostata su UTF-8; se il corpo dello script utilizza il cirillico, la codifica deve essere modificata inserendo il comando chcp 1251 nell'apposito posto.

Invece dell'estensione BAT, puoi utilizzare CMD, il risultato dell'esecuzione dello script sarà esattamente lo stesso.

Comandi di base, sintassi ed esempi di utilizzo di file batch

Sai come creare un file bat, ora è il momento della parte più interessante, ovvero la sintassi del linguaggio interprete CMD. È chiaro che un file batch vuoto non funzionerà, non si avvierà nemmeno facendo doppio clic su di esso. Affinché lo script funzioni, è necessario che vi sia scritto almeno un comando. Per un esempio visivo, vediamo come scrivere un file bat per avviare i programmi. Diciamo che quando inizi a lavorare, avvii tre programmi ogni volta: Chrome, Firefox e VLC. Semplifichiamo l'attività creando uno script che avvierà questi programmi da solo a intervalli di cinque secondi.

Apri un file batch vuoto e incolla al suo interno i seguenti comandi:

Avvia "" "C:/Programmi/Google/Chrome/Application/chrome.exe" timeout /t 05 avvia "" "C:/Programmi/Mozilla Firefox/firefox.exe" timeout /t 05 avvia "" "C :/Programmi/VideoLAN/VLC/vlc.exe"

Squadra inizio avvia il file eseguibile del programma desiderato e il comando timeout/t imposta l'intervallo tra gli avviamenti. Presta attenzione al posizionamento delle virgolette: contengono percorsi che contengono spazi. Inoltre, se nel percorso sono presenti caratteri cirillici, è necessario inserire un comando che modifichi la codifica all'inizio dello script chcp 1251, altrimenti l'interprete non sarà in grado di leggere correttamente il percorso.

Quando esegui lo script si apriranno quattro finestre della console in sequenza; questo è normale; dopo aver eseguito i comandi si chiuderanno tutte automaticamente, puoi però assicurarti che si apra solo la prima finestra. Per fare ciò, il codice di avvio dell'applicazione dovrebbe essere modificato come segue:

Inizio /b "" "percorso"

Può anche succedere che ad un certo punto sarà necessario mettere in pausa l'esecuzione dello script in modo che l'utente possa decidere se eseguire o meno tutti gli altri comandi. C'è un comando per questo pausa. Prova a sostituire timeout con esso e guarda cosa succede.

Inizio /b "" "percorso" pausa

Diamo un'occhiata a un altro esempio di comandi per un file bat. Scriviamo uno script che spegnerà il computer in un caso e lo riavvierà in un altro. Per questi scopi utilizzeremo il comando fermare con parametri /S, /R E /T. Se lo desideri, puoi aggiungere una richiesta per eseguire un'azione al tuo body file, in questo modo:

@echo off chcp 1251 echo "Sei sicuro di voler spegnere il computer?" pausa spegnimento /s /t 0

Spieghiamo. Il primo comando nasconde il testo dei comandi stessi, il secondo imposta la codifica cirillica, il terzo visualizza un messaggio per l'utente, il quarto imposta una pausa, il quinto si spegne e con il tasto /R invece di /S riavvia il computer senza il tradizionale ritardo di un minuto. Se non vuoi fare cerimonie con richieste e pause, puoi lasciare solo il quinto comando.

Se invece del testo russo durante l'esecuzione del comando vedi kryakozyabra, prova a convertire il file script in ANSI.

Cos'altro puoi fare con gli script? Molte cose, ad esempio eliminare, copiare o spostare file. Supponiamo che tu abbia una determinata cartella di dati nella radice dell'unità D, il cui contenuto deve essere cancellato in un colpo solo. Apri il file batch e incolla al suo interno il seguente comando:

Canc /A /F /Q "D:/dati"

Oppure puoi fare questo:

Forfiles /p "D:/data" /s /m *.* /c "cmd /c Del @percorso"

A differenza del primo, il secondo comando elimina i file in modo ricorsivo, ovvero verranno eliminati tutti i file nella cartella dati più quelli che si trovano nelle sottodirectory.

Ecco un altro esempio utile. Scriviamo uno script che creerà una copia di backup del contenuto di una cartella e salverà i dati in un'altra. Il comando è responsabile della copia robocopia:

Robocopy C:/dati D:/backup /e pausa

Eseguendo tale file batch per l'esecuzione, copierai l'intero contenuto della cartella dati nella cartella di backup, comprese le sottodirectory, vuote e con file. A proposito, il comando robocopy ha molti parametri che ti consentono di configurare i parametri di copia in modo molto flessibile.

Esegui file bat come amministratore e secondo una pianificazione, lancio di pipistrelli nascosti

Ora sai come creare file batch e hai una conoscenza generale del linguaggio dell'interprete CMD. Queste erano le basi, ora è il momento di familiarizzare con alcune utili funzionalità per lavorare con i file bat. È noto che i programmi richiedono i diritti di amministratore per eseguire alcune azioni. Anche i Batnik potrebbero averne bisogno. Il modo più ovvio per eseguire uno script come amministratore è fare clic con il pulsante destro del mouse su di esso e selezionare l'opzione appropriata dal menu contestuale.

Inoltre, puoi assicurarti che un file batch specifico verrà sempre avviato con privilegi elevati. Per fare ciò, è necessario creare un normale collegamento a tale script, aprire le sue proprietà, fare clic sul pulsante "Avanzate" e selezionare la casella di controllo "Esegui come amministratore" nella finestra che si apre. Questo metodo è utile anche perché ti consente di selezionare qualsiasi icona per il collegamento, mentre un file con estensione BAT o CMD avrà sempre un aspetto anonimo.

Gli script, come tutte le applicazioni, possono essere avviati in base a una pianificazione. Squadra timeout/t non è del tutto appropriato in questo caso; per l'avvio ritardato è meglio utilizzare l'Utilità di pianificazione di Windows integrata. Tutto è semplice qui. Apri con il comando taskschd.msc Scheduler, decidere il trigger, selezionare l'azione "Esegui programma" e specificare il percorso del file bat. Questo è tutto, lo script verrà avviato all'orario previsto.

E infine, un altro punto interessante. Quando esegui un file bat, sullo schermo appare una finestra della riga di comando, anche se solo per una frazione di secondo. È possibile eseguire lo script in modalità nascosta? È possibile e in diversi modi. Il più semplice è il seguente. Crea un collegamento per il file bat, apri le sue proprietà e seleziona "Compresso in icona" dal menu "Finestra". Successivamente, l'unico segno visibile dell'esecuzione dello script sarà la comparsa dell'icona CMD sulla barra delle applicazioni, ma non si aprirà alcuna finestra.

Se vuoi nascondere completamente l'esecuzione dello script, puoi utilizzare una "stampella": lo script VBS, che avvierà il tuo file batch in modalità nascosta. Il testo dello script è sotto, salvalo in un file nascosto.vbs, avendo precedentemente sostituito il percorso nella seconda riga di codice D:/script.bat percorso del file del corpo.

Imposta WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "D:\script.bat" & Chr(34), 0 Imposta WshShell = Niente

Esistono anche altre opzioni, ad esempio l'utilizzo dell'utilità Inizio nascosto, che consente di eseguire file eseguibili e batch in modalità nascosta, anche senza invito.

E questo è tutto per ora. Le informazioni sulla creazione degli script BAT possono essere facilmente reperite su Internet. È anche una buona idea dare un'occhiata al tutorial sulla riga di comando di Microsoft Windows di William Stanek. Nonostante siano trascorsi più di dieci anni dalla pubblicazione del libro, le informazioni in esso contenute sono ancora rilevanti.

Come ha dimostrato l'esperienza, i file batch, ad es. file batch sono molto popolari tra gli amministratori di sistema che li utilizzano per i loro scopi di automazione. E oggi continuiamo a studiare questi stessi file bat; non considereremo le basi, ma passeremo a cose più avanzate.

Nel primo articolo Scrivere file bat - esempi di file batch, abbiamo esaminato semplici esempi di utilizzo di file batch, ma come si è scoperto, scrivere file batch è molto interessante per quasi tutti e tutti vogliono imparare qualcosa di più complesso, con cui tu può semplificare ulteriormente l’automazione di alcuni processi.

Esempio 1 – eliminazione dei vecchi archivi

Quando si archivia qualcosa, molte persone sono interessate alla domanda “ Come eliminare i vecchi archivi in ​​quanto non necessari utilizzando un file batch? " Ad esempio, sono tutti in un'unica cartella ed è necessario eliminare tutti gli archivi più vecchi di 14 giorni. Dopo aver letto i manuali e navigato in Internet, posso suggerire il seguente metodo.

È possibile fare in modo che nella cartella con gli archivi venga memorizzato solo un certo numero di archivi, rispettivamente gli ultimi ( quelli. solo nel nostro caso nelle ultime 2 settimane).

Questo viene fatto utilizzando due comandi. Il primo è DIR, cioè leggiamo semplicemente tutti i file in una cartella e scriviamo i loro nomi in un file di testo.

dir D:\arhiv\*.rar /a:-D/b/o:-D > elenco_di_file.txt

  • dir D:\arhiv\*.rar– questo significa che leggiamo tutti gli archivi rar nella cartella D:\arhiv\;
  • /anno Domini– questo significa che verranno visualizzati tutti i file con gli attributi specificati, il tasto -D significa che abbiamo bisogno solo di file e non di directory, il prefisso “-” significa solo negazione, cioè non directory, se scrivessimo solo D, allora leggerebbe anche le directory;
  • /B– questo è solo l'output dei nomi dei file;
  • /o :-D– questo è l’ordinamento, il tasto –D significa che l’ordinamento verrà effettuato per data, ma prima quelli più vecchi, per sistemare questo sappiamo già che il prefisso “-” ci aiuterà;
  • > — significa che l'output verrà reindirizzato al file list_of_files.txt, puoi nominarlo diversamente.

Quindi abbiamo contato tutti i nostri archivi e li abbiamo scritti in un file, quindi dobbiamo esaminare tutti questi file e lasciare solo 14 pezzi, ovvero nelle ultime 2 settimane. Lo facciamo usando il comando PER, è una sorta di loop che esegue un'azione specifica per ogni file in una cartella o ogni riga in un file, come nel nostro caso.

  • per– la squadra stessa per la paratia;
  • /F "salta=13"– si tratta di una chiave con un parametro che significa che non è necessario elaborare i primi 13 file, ad es. li saltiamo. Perché 13 e non 14 sì perché 14 archivio ( quelli. quello di oggi, che dovrebbe essere creato durante l'esecuzione di questo file batch) non è ancora stato creato, quindi 13;
  • %%io– una variabile che memorizza il nome del file corrente;
  • In (elenco_di_file.txt)– significa eseguire l'iterazione su tutte le righe di questo particolare file;
  • fare (del /Q "%%i")- dice cosa bisogna fare con ognuno di essi, nel nostro caso eliminiamo semplicemente questi file usando il tasto del /Q /Q, in modo che non ci venga chiesta conferma prima dell'eliminazione. Per i test, consiglio di sostituire del /Q con echo, ad es. basta visualizzare quei file.

In totale, abbiamo ottenuto questo file batch:

dir D:\arhiv\*.rar /a:-D/b/o:-D > elenco_di_file.txt

for /F “skip=13” %%i in (list_of_files.txt) do (del /Q “%%i”)

Di conseguenza, dopo queste righe puoi scrivere il codice di archiviazione stesso, e alla fine otterremo che nella nostra cartella verranno archiviati solo 14 archivi, ovviamente quelli più recenti.

Esempio 2: utilizzo delle variabili

Puoi anche utilizzare variabili nei file batch, proprio come in un vero linguaggio di programmazione. Consideriamo l'esempio più semplice di utilizzo delle variabili, ad esempio vogliamo moltiplicare per 2 il numero che inseriamo nel campo durante l'esecuzione del file batch.

@eco disattivato

IMPOSTA /a c=%a%*%b%

eco %c%

Come hai capito, le variabili vengono impostate utilizzando il comando SET. Per poter utilizzare la variabile in futuro, inseriamo un segno di percentuale (%) su entrambi i lati della variabile in modo che la riga di comando capisca che si tratta di una variabile.

  • @eco disattivato– in modo che i nostri comandi non vengano visualizzati sullo schermo;
  • IMPOSTARE a=2– impostiamo semplicemente un valore alla variabile “a”;
  • SET /p b=[inserisci il secondo numero da moltiplicare]– impostiamo la variabile “b” al valore che inseriremo nel campo, in modo che il batchworker capisca che vogliamo inserire noi stessi il valore della variabile, viene utilizzato il tasto /p;
  • IMPOSTA /a c=%a%*%b%— impostiamo la variabile “c” sul risultato della nostra espressione ( nel nostro esempio questa è la moltiplicazione);
  • eco %c%— visualizzare il valore della variabile “c”;
  • pausa- mettiamo semplicemente in pausa l'esecuzione del nostro file bat per vedere semplicemente tutti i risultati.

A proposito, affinché le lettere russe vengano visualizzate normalmente sulla riga di comando, salva il file bat nella codifica DOS-866.

Abbiamo sistemato le variabili, ora applichiamo questo al nostro primo esempio, diciamo che non vogliamo lasciare 14 archivi, ma il numero che vogliamo, per questo, quando avvieremo il file batch, inseriremo il numero di archivi che devono essere salvati. Apparirà qualcosa del genere:

@eco disattivato

dir D:\test\*.rar /a:-D/b/o:-D > elenco_di_file.txt

for /F “skip=%chislo%” %%i in (list_of_files.txt) do (del /Q “%%i”)

Beh, qualcosa del genere, ovviamente, in pratica potrebbe non essere necessario, ma almeno abbiamo imparato come usare le variabili.

Per quanto riguarda le variabili, voglio anche dire che esistono variabili di sistema come:

%DATA%— mostra la data corrente.

%TEMPO%— mostra l'ora corrente.

Ad esempio, esegui il codice seguente:

eco %DATA%

eco %time:~0,-3%

Ho scritto la variabile %TIME% esattamente in questo modo, affinché il risultato venga visualizzato in una forma più leggibile, prova a scrivere per te %TIME% e % TIME:~0.-3%, nel secondo caso l'ultimo Verranno rimossi 3 caratteri.

In realtà, ci sono più variabili di sistema; queste potrebbero semplicemente essere richieste più spesso di altre.

Esempio 3 – Dichiarazione di esecuzione condizionale IF

Come in altri linguaggi completi, è possibile utilizzare l'operatore di esecuzione condizionale IF nei file batch. Facciamo un piccolo esempio, il file batch verifica semplicemente se il file esiste o meno:

@eco disattivato

SE ESISTE test.txt (

echo Il file esiste

echo Non esiste un file del genere

SE ESISTE test.txt- questo è esattamente ciò che viene controllato per verificare la presenza del file.

Dopo, tra parentesi, c'è quello che vogliamo fare se il file esiste, e se il file non esiste, dopo ELSE c'è quello che dobbiamo fare se il file non esiste.

Adesso modifichiamo leggermente il nostro esempio moltiplicando il numero che abbiamo inserito per 2, semplicemente, se inseriamo improvvisamente lo zero, visualizzeremo il messaggio corrispondente e vi chiederemo di inserire nuovamente il numero.

@eco disattivato

SET /p b=[inserisci il secondo numero da moltiplicare]

IMPOSTA /a c=%a%*%b%

if %c%==0 (echo hai inserito il numero 0, inseriscine un altro) else echo %c%

se %c%==0 (vai a:metka)

Tutto qui è già familiare, l'unica cosa è che quando si confronta la variabile “c” l'operatore di confronto == ( due uguali), perché semplicemente uguale (=) è un operatore di assegnazione. Se hai notato, qui ho usato l'operatore goto, ad es. passare all'etichetta desiderata. In altre parole, inseriamo un'etichetta e, a seconda del risultato del controllo della condizione, verrà effettuato il passaggio all'etichetta desiderata.

Ora vorrei sottolineare che molte persone usano il programma winrar nel loro lavoro, ad esempio, per creare un archivio e, ovviamente, lo usano nei loro file batch, ma molti fanno domande sulle chiavi relative a winrar. Non confondere le chiavi winrar, vengono utilizzate solo per questo programma e non per tutto ciò che è nei file batch, ad es. riga di comando, ad esempio, se usi 7zip, i tasti saranno diversi. Per quanto riguarda le chiavi WinRAR, il libro di consultazione migliore e completo, secondo me, è ovviamente WinRARE stesso. Per visualizzare una descrizione dei tasti WinRAR, apri il programma WinRAR, vai al menu Aiuto, quindi fai clic su " Contenuto", quindi selezionare la riga " Modalità riga di comando", dove ci sarà una descrizione di tutte le chiavi, verranno forniti anche semplici esempi. Di conseguenza, se hai la versione inglese di winrar, il significato è lo stesso, solo tutto sarà in inglese.

Questo conclude la nostra seconda parte dello studio dei file batch. Buona fortuna!

Alexey Komolov (San Pietroburgo)

Ho già scritto un articolo sui virus dei pipistrelli. In questo articolo voglio parlare dei file bat stessi e di cosa sono.

I file batch sono normali file di testo contenenti serie di comandi dell'interprete e con estensione *.bat o *.cmd (*.cmd funziona solo nei sistemi operativi NT). Puoi modificare tali file utilizzando il normale Blocco note o qualsiasi altro editor di testo.

Di seguito descriverò alcuni esempi di applicazioni che ho testato in Windows 2000. Alcuni di questi esempi funzionano anche in Windows 9x.

Iniziamo creando il file bat stesso. Per fare ciò, crea un nuovo documento di testo nel Blocco note, aprilo e digita al suo interno le seguenti due righe:

@echo Questo file batch

Quindi selezionare il menu File > Salva con nome, selezionare Tipo di file > Tutti i file, nel campo "Nome file" inserire il nome del file con l'estensione - ad esempio 1.bat - e salvarlo, ad esempio, nella radice dell'unità C. Ora apri l'unità C ed esegui il file che hai creato. Sullo schermo apparirà una finestra con la scritta:

Questo file batch

Premere un tasto qualsiasi per continuare...

Dopo aver premuto un tasto qualsiasi, la finestra si chiuderà, poiché il file bat è completato.

Notare il simbolo del cane (@) prima di ogni riga. Questo simbolo nel file bat indica che il comando stesso non deve essere visualizzato sullo schermo, ma deve essere visualizzato solo il risultato della sua operazione.

Come esperimento, puoi aprire questo file con Blocco note e rimuovere il carattere "cane" dall'inizio di ogni riga, salvare ed eseguire il file *.bat risultante: vedrai immediatamente il risultato.

Quindi, sai come creare file bat. Ma è necessario fornire loro determinati comandi affinché possano fare qualsiasi cosa. Per fare ciò, vai al menu Start > Esegui e inserisci il comando cmd (per la famiglia Windows NT) o comando (per Windows 9x) nella finestra che appare - vedrai una riga di comando in cui inserisci il comando:

E vedrai un elenco di comandi disponibili che puoi utilizzare, con brevi descrizioni per loro.

Se hai bisogno di una descrizione più dettagliata di un comando specifico, inseriscilo nella riga di comando

aiuto nome_comando

Ad esempio, per ottenere una guida dettagliata sulle opzioni del comando AT, inserisci il seguente comando:

Di conseguenza, sullo schermo verrà visualizzato un elenco di tasti per eseguire il comando AT da un file bat.

Se il tuo file bat viene eseguito in Windows e non in puro DOS, puoi avviare qualsiasi applicazione o aprire file da esso. Ad esempio, se è necessario aprire automaticamente il file di registro di un file bat al termine del suo lavoro, per fare ciò è sufficiente includere il seguente comando nell'ultima riga del file bat:

avviare nomefile.txt

Come risultato dell'esecuzione, il file nomefile.txt si aprirà e il file *.bat stesso completerà il suo lavoro. Questo metodo è utile se il file di registro è piccolo, altrimenti Blocco note si rifiuterà di aprirlo, suggerendoti di utilizzare WordPad. Ma questo problema può anche essere risolto (di cui scriverò più avanti, in altri esempi).

File bat con esecuzione automatica

Molto spesso è necessario avviare automaticamente i file bat per eseguire operazioni di routine.

Lo Scheduler incluso nella distribuzione standard del sistema operativo Windows è particolarmente adatto per l'esecuzione automatica dei file bat secondo una pianificazione. Con il suo aiuto, puoi configurare in modo molto flessibile l'avvio di un file batch in determinati giorni o ore, con un certo intervallo. Puoi anche creare più pianificazioni, ecc.

Per eseguire localmente i file bat è possibile utilizzare programmi di società terze.

bat possono essere utilizzati anche come script di accesso nei domini. Inoltre, verranno eseguiti ogni volta che l'utente accede alla rete, indipendentemente dalla sua volontà.

Con il loro aiuto, puoi automatizzare la raccolta di informazioni su macchine o software installati sui computer degli utenti, modificare forzatamente le impostazioni di Windows, installare software senza che l'utente se ne accorga e automatizzare la soluzione di altre attività che richiederebbero molto tempo se eseguite manualmente.

Creazione di un file con un nome arbitrario utilizzando un file bat.

Per creare un file durante l'esecuzione di un file batch, si utilizza un simbolo di reindirizzamento simile a questo >

Cioè, per creare un file, è necessario reindirizzare il flusso di dati dallo schermo al file. Questo può essere fatto usando il seguente comando:

@echo Avvia file>C:\1.txt

Dopo aver eseguito questo comando, nella radice dell'unità C:/ verrà creato un file di testo con la riga Start file.

Inoltre, quando si crea un file, è possibile utilizzare variabili di sistema o parti di esse nel suo nome. Ad esempio, puoi creare un file di report sul funzionamento di un file bat con un nome uguale alla data di lancio di questo file bat. Per fare ciò, utilizzare le seguenti righe nel file bat:

imposta datatemp=%data:~-10%

@echo .>%SYSTEMDRIVE%\%DATETEMP%.txt

Lascia che ti spieghi un po' come funzionano queste due linee.

Per prima cosa creiamo in memoria una variabile datetemp, alla quale vengono assegnati 10 caratteri da destra a sinistra dalla variabile di sistema DATE. Ora la variabile temporanea datetemp contiene solo la data corrente.

Con la riga successiva reindirizziamo l'output del simbolo “punto” su un file, il cui nome è preso dalla variabile datetemp e l'estensione *.txt è specificata esplicitamente. Il file verrà creato sul disco di sistema del computer su cui viene eseguito il file bat.

Supponiamo che tu sia un amministratore di sistema e che tu abbia bisogno di raccogliere informazioni sui computer sulla rete. E per sapere a quale computer appartiene questo o quel dato, sarebbe più conveniente aggiungere alle informazioni raccolte il nome del computer. Questo può essere fatto usando il seguente comando:

@echo .>C:\NomeCartella\%NOMECOMPUTER%.txt

Durante l'esecuzione di un file batch, questo comando creerà un file di testo sull'unità C:/ con il nome del computer su cui viene eseguito il file batch.

Per creare un file con un nome specifico, puoi utilizzare qualsiasi variabile di sistema o crearne uno tuo in base alle variabili di sistema e (o) altri dati.

Creazione di una cartella utilizzando un file bat.

Per creare una cartella utilizzando un file bat, utilizzare il comando MKDIR o il suo equivalente abbreviato MD. Questo comando è simile al seguente:

NomecartellaMD

Dopo aver eseguito questo comando verrà creata una cartella NomeCartella nella cartella da cui viene lanciato il file bat stesso.

Per creare un file in un'altra posizione, ad esempio nella radice dell'unità D:/, utilizzare il percorso completo della posizione in cui verrà posizionata questa cartella nel comando. In questo caso, il comando sarà simile al seguente:

MD D:\NomeCartella

È inoltre possibile utilizzare variabili di sistema durante la creazione delle cartelle. Ad esempio, puoi creare una cartella nella radice dell'unità D:/ con il nome dell'utente corrente. A questo scopo viene utilizzata la variabile %USERNAME%. Il comando stesso sarà simile a questo:

MD D:\%NOMEUTENTE%

Ma puoi complicare ulteriormente il comando e creare una cartella con il nome dell'utente corrente sull'unità di sistema del suo computer. Questo comando sarà simile al seguente:

MD %UNITÀ DI SISTEMA%\%NOMEUTENTE%

Inoltre, quando si creano cartelle o file, è possibile utilizzare qualsiasi variabile di sistema o parte di essa. Ad esempio, quello che segue è un comando per creare una cartella denominata con la data corrente sull'unità di sistema del computer dell'utente:

imposta datatemp=%data:~-10%

MD %SYSTEMDRIVE%\%datetemp%

Questo esempio funziona nel modo seguente: il primo comando crea una variabile datetemp in memoria, che verrà distrutta al termine dell'esecuzione del file bat. Cioè, finché il file bat non avrà terminato il suo lavoro, avrai la possibilità di operare con il valore di questa variabile. Alla variabile datetemp vengono assegnati 10 caratteri da destra a sinistra dalla variabile di sistema DATE, ovvero dalla data corrente.

La variabile DATE ha il formato DN GG.MM.AAAA. I primi caratteri a sinistra sono il nome del giorno della settimana, quindi puoi tranquillamente scartarli e assegnare solo la data corrente alla variabile temporanea datetemp.

Puoi anche manipolare le variabili nel modo che preferisci, creando cartelle con nomi univoci, facili da leggere e intuitivi.

È possibile ottenere un elenco di tutte le variabili utilizzando il comando SET.

Reindirizzare il risultato dell'esecuzione del comando su un file.

Quando si esegue un file bat complesso in modalità automatica, spesso sorgono difficoltà legate al controllo dei risultati del suo lavoro, il che è dovuto a molte ragioni. Pertanto, è più semplice registrare i risultati dei comandi del file *.bat in un file di registro di testo separato, quindi analizzare il corretto funzionamento del file *.bat utilizzando il registro registrato e, se necessario, regolare il funzionamento dello stesso bat.

È possibile reindirizzare il risultato dei comandi del file *.bat in un file di registro utilizzando il seguente codice:

@eco disattivato

eco Avvia %time%

echo Crea test.txt

echo test>C:\test.txt

echo Copia Test.txt in Old_test.txt

copia C:\test.txt C:\Old_test.txt

eco Interrompi %time%

Di seguito descriverò cosa significano le righe di questo codice.

La prima riga disabilita l'output dei comandi stessi. Pertanto, nel file di registro verranno scritti solo i risultati della loro esecuzione.

La seconda riga scrive nel file di registro l'ora di inizio del file batch.

La terza riga scrive nel file di registro una spiegazione che il seguente comando creerà un file test.txt

Il quarto termine crea un file test.txt dalla radice dell'unità C:/. Questo file viene creato ad esempio: puoi nominarlo diversamente e posizionarlo in una posizione diversa. Lo stesso comando scrive la parola test nel file C:\test.txt.

La quinta riga stampa nel file di registro una spiegazione che il seguente comando copia un file da una posizione a un'altra.

La sesta riga copia il file creato C:\test.txt nel file C:\Old_test.txt, cioè una copia del file viene creata con un nuovo nome.

Infine, l'ultima, settima riga, contiene un comando per visualizzare l'ora di completamento del file batch. Insieme alla registrazione dell'ora di inizio del file batch nel file di registro, questi due valori temporali consentono di stimare il tempo di esecuzione del file batch.

Salva questo file batch con qualsiasi nome, ad esempio log.bat.

Potrebbe verificarsi una situazione in cui è necessario salvare un report sul funzionamento di un file batch in una cartella separata e scrivere un report con un nuovo nome file ogni giorno, in modo da poter successivamente accedere ai registri dei giorni precedenti in qualsiasi giorno. E, diciamo, il nome del file di registro dovrebbe avere la forma della data di funzionamento del file batch.

Per implementare tutto ciò, creare, ad esempio, una cartella denominata LOG sul disco C:/, ovvero il percorso completo sarà simile a C:\LOG nel file *.bat. Il file batch log.bat creato verrà eseguito con il seguente comando:

log.bat>C:\LOG\%data~-10%.txt

Se il file batch verrà avviato dallo Scheduler, sarà necessario specificare il percorso completo del file *.bat. Ricorda che se ci sono spazi nel percorso, devi usare le virgolette o il formato 8.3. Cioè, se il percorso del file bat assomiglia, ad esempio, a C:\Programmi\1.bat, nella riga di comando dello Scheduler per avviare il file bat apparirà così:

“C:\Programmi\1.bat”>C:\LOG\%date~-10%.txt

O così:

C:\Progra~1\1.bat>C:\LOG\%data~-10%.txt

Puoi utilizzare qualsiasi comando che preferisci, poiché significano essenzialmente la stessa cosa, solo che sono scritti in modo leggermente diverso.

Dopo aver eseguito il file log.bat, nella cartella C:\LOG verrà creato un file con un nome sotto forma della data di avvio del file bat, ad esempio 10/09/2010.txt. Questo file di testo sarà un rapporto sul funzionamento del file batch log.bat.

L'esecuzione del file bat, di cui ho scritto un esempio all'inizio di questa sezione, utilizzando il comando precedente porterà alla creazione di un file di registro con il seguente contenuto:

Inizio 19:03:27.20

Crea test.txt

Copia Test.txt in Old_test.txt

File copiati: 1.

Sosta 19:03:27.21

Pertanto, per reindirizzare i risultati di un file bat in un file di registro, è necessario utilizzare il simbolo di reindirizzamento >. La sintassi del comando è:

Percorso\NomeFile.bat>Percorso\NomeFileLog.txt

In linea di principio, l'estensione del file di registro può essere quasi qualsiasi. Se lo si desidera, un report sull'esecuzione di un lavoro batch può anche essere formattato come una pagina HTML - i tag corrispondenti possono essere emessi in un file di registro allo stesso modo in cui sono stati emessi i commenti nell'esempio log.bat - e copiati, per esempio. ad esempio, a un server aziendale.

Risposta automatica alla richiesta di conferma.

Alcuni comandi richiedono la conferma di un'azione potenzialmente pericolosa quando vengono eseguiti. Ad esempio, comandi come format o del, che distruggono i file sui supporti di memorizzazione, chiedono innanzitutto conferma prima di procedere all'eliminazione dei file o alla formattazione del supporto di memorizzazione.

Se uno di questi comandi viene eseguito in un file batch, la richiesta di conferma interromperà l'esecuzione del file batch e attenderà che l'utente selezioni una delle numerose opzioni proposte (di solito si tratta di 2 opzioni - accetta di continuare l'esecuzione del file batch comando o rifiutare e terminare il comando).

Ma se il risultato dell'esecuzione del file batch viene reindirizzato a un file di registro, l'utente non vedrà una richiesta di conferma e il file bat apparirà bloccato.

Per correggere tali problemi, è possibile reindirizzare la risposta desiderata al comando, ovvero eseguire l'azione opposta per reindirizzare l'output del comando su un file.

Ti mostrerò con un esempio specifico come si presenta una richiesta di conferma di un'azione potenzialmente pericolosa. Crea, ad esempio, sull'unità C:/ una cartella con un nome, ad esempio Papka. Quindi crea al suo interno (o copia al suo interno) due file qualsiasi (ad esempio 2 immagini). Quindi aprire un prompt dei comandi ed eseguire il comando seguente:

del C:\Cartella

Questo comando dovrebbe rimuovere tutti i file dalla cartella specificata. Ma prima di eliminare tutto, ti verrà chiesto di confermare il seguente contenuto:

C:\Papka\*, continuare?

Il comando non verrà eseguito finché non si preme il tasto Y (per confermare l'eliminazione dei file) o il tasto N (per uscire dal programma senza eliminare i file). Se esegui un file batch in modalità automatica, la sua esecuzione verrà interrotta.

Per evitare ciò, utilizzare un reindirizzamento. Il reindirizzamento viene eseguito utilizzando il simbolo della barra verticale (|). Questa barra verticale indica al programma che invece di visualizzare il simbolo sullo schermo, dovrebbe essere “dato” al comando che segue il simbolo.

Puoi verificare che il reindirizzamento funzioni eseguendo il seguente comando sulla riga di comando:

echo Y|del C:\Cartella

Sullo schermo verrà visualizzata una richiesta di conferma dell'eliminazione di tutti i file nella cartella Papka, ma immediatamente con una risposta positiva (Y). Tutti i file della cartella Papka verranno eliminati.

Ma fai attenzione con questo comando per non farti del male e non eliminare i file che ti servono.

Continua nel prossimo numero

Camicia per il corpoè un normale file di testo contenente serie di comandi dell'interprete e avente l'estensione .pipistrello O .cmd! (.cmd funziona solo nei sistemi operativi della famiglia NT). Puoi modificare tali file utilizzando Blocco note o qualsiasi altro editor di testo.

Stiamo scrivendo un body file

Creeremo un body file per la seconda situazione (non è molto più complicato). Per scrivere un corpo del file, prendiamo un blocco note standard. Scriviamo le seguenti righe nel blocco note:

Eco disattivato - nasconde il processo di copia visiva.

C:\Programmi\QIP\Utenti- la cartella in cui si trova la storia.

f:\rar.exe a -r utenti > nul-avviare l'archiviatore per velocizzare la copia.

copia users.rar g:\adc > nu l - l'indirizzo dove copiamo.

del users.rar > nul- cancella l'archivio creato sul disco rigido.

La lettera di un'unità flash non è sempre nota. In questo caso, annotiamo diverse opzioni (ne indovineremo sicuramente una):

chdit C:\Programmi\QIP\Utenti

f:\rar.exe a -r utenti > nul

copia users.rar e:\abc > nul

g:\rar.exe a -r utenti > nul

copia users.rar g:\abc > nul

h:\rar.exe a -r utenti > nul

copia users.rar h:\abc > nul

del utenti-rar > nul

Salva il nostro documento di testo. Chiamiamolo xxx.txt. Ora cambiamo l'estensione da .txt a .bat. Questo può essere fatto in Total Commander.

Creazione dell'esecuzione automatica

Ora dobbiamo assicurarci che il file batch venga avviato automaticamente dall'unità flash quando viene collegata al computer. Per fare ciò, crea un nuovo documento di testo e scrivi al suo interno:

ShellExecute="xxx.bat"

Salvare il file e rinominarlo in esecuzione automatica.inf.

Fare un archivio

Dalla cartella con WinRAR (di default C:\Program Files\WinRAR prendiamo il file rar.exe. Crea una cartella nella radice dell'unità flash con il nome abc. Inoltre, inseriamo i restanti tre file nella radice dell'unità flash ( xxx.bat, autorun.inf, rar.exe).

Nascondiamo tutti i file da occhi indiscreti (clicca con il tasto destro per chiamare Menu File > Proprietà > Nascosto. Questo è tutto. Diamo la chiavetta USB alla "vittima" e aspettiamo il risultato.

Ingegneria sociale

Non è necessario l'avvio automatico. La “vittima” può avviare lei stessa il file batch. Per fare ciò, è necessario utilizzare l'ingegneria sociale. Ad esempio, informiamo l'utente che Microsoft ha rilasciato un nuovo aggiornamento per Windows. Questo aggiornamento migliora le prestazioni e la sicurezza del sistema operativo. Devi solo installare l'aggiornamento da un'unità flash. Puoi trovare tu stesso un motivo per cui dovresti avviare il nostro file batch. Tutto dipende dalla tua immaginazione e ingegnosità.

Conversione di .bat in .exe

Per maggiore “sicurezza” neperonim.bat in.exe (nel caso in cui la “vittima” abbia familiarità con la scrittura di file batch). Un piccolo programma ci aiuterà in questo. ExeScript v3.0.

Puoi scaricarlo qui: http://uploadbox.com/fMes/c8d5a60af9/ (dimensione 3,51 MB). Nella finestra del programma, fare clic sull'icona con un foglio bianco e selezionare File batch (bat) O File > Nuovo > File batch (bat). Nella finestra che appare, scrivi il nostro “testo”.

Ora indichiamo un'icona adatta per il nostro eseguibile. Nella finestraProprietà fare clic sul campoIcona personalizzata e seleziona un'icona pre-preparata. Quindi, fai clic su F7 OProgetto > Costruisci . Questo è tutto, il ragazzo è pronto.

I file batch o batch sono normali file di testo contenenti serie di comandi dell'interprete e con estensione bat o cmd (cmd funziona solo nei sistemi operativi della famiglia NT). Puoi modificare tali file utilizzando il blocco note o qualsiasi altro editor di testo.

Apri il blocco note e digita le due righe seguenti:

@echo Questo file batch
@pausa

Questo file batch
Premere un tasto qualsiasi per continuare...

Dopo aver premuto un tasto qualsiasi, la finestra si chiuderà, perché bat è completato.
Tieni presente che il simbolo del cane prima di ogni comando nel file bat indica che non è necessario che il comando stesso sia visualizzato sullo schermo, ma deve essere visualizzato solo il risultato della sua operazione. Per sperimentare, rimuovi il carattere del cane dall'inizio di ogni riga, salva ed esegui il file bat risultante.

Comandi utilizzati nei file bat

L'elenco dei comandi che possono essere utilizzati nei file bat può essere visualizzato inserendo il comando nella riga di comando (Start - Esegui - cmd per la famiglia Windows NT o Start - Esegui - comando per la riga 9x)

Il risultato dell'aiuto è un elenco di comandi disponibili con brevi spiegazioni. Per ottenere informazioni più dettagliate sul comando che ti interessa, inserisci help nome_comando nella riga di comando. Ad esempio, per ottenere una guida dettagliata sulle opzioni del comando AT, esegui il comando seguente:

Di conseguenza, sullo schermo verrà visualizzato un elenco di tasti per eseguire il comando AT dal file bat.
Se il file bat viene eseguito in Windows (non puro DOS), è possibile eseguire qualsiasi applicazione o aprire file da esso. Ad esempio, è necessario aprire automaticamente il file di registro del file bat quando completa il suo lavoro. Per fare ciò, basta includere il seguente comando nel file bat come ultima riga:

avviare nomefile.txt

Il risultato dell'esecuzione di questo comando sarà l'apertura del file nome_file.txt e il file bat stesso completerà il suo lavoro. Questo metodo è utile se il file di registro è piccolo, altrimenti Blocco note si rifiuterà di aprirlo, suggerendoti di utilizzare WordPad. Ma questo problema può anche essere risolto, come mostreremo in altri esempi.

Come automatizzare l'avvio dei file bat

Molto spesso è necessario automatizzare il lancio dei file bat per eseguire operazioni di routine. Per eseguire i file bat secondo una pianificazione, lo Scheduler incluso nel pacchetto standard di Windows è il più adatto. Con questo aiuto puoi configurare in modo molto flessibile l'avvio di un file batch in determinati giorni o ore, con un determinato intervallo. È possibile creare più pianificazioni, ecc.

Per avviare file batch in locale è possibile utilizzare soluzioni di terze parti; fortunatamente esistono numerose alternative gratuite e a pagamento allo Scheduler standard.

I file batch possono essere utilizzati anche come script di accesso nei domini. Se utilizzati in questo modo, verranno eseguiti ogni volta che l'utente accede alla rete, indipendentemente dal suo desiderio. Con il loro aiuto, puoi automatizzare la raccolta di informazioni su macchine o software installati sui computer degli utenti, modificare forzatamente le impostazioni di Windows, installare software senza che l'utente se ne accorga e automatizzare la soluzione di altre attività che richiederebbero molto tempo se eseguite manualmente.

Come creare un file con un nome arbitrario da un file bat

Un simbolo di reindirizzamento viene utilizzato per creare un file mentre è in esecuzione un file batch. Sembra questo:
>
Quelli. per creare un file è necessario reindirizzare lo streaming dallo schermo al file. Questo può essere fatto usando il seguente comando:

@echo Avvia file>C:\1.txt

Dopo aver eseguito questo comando, nella radice dell'unità C verrà creato un file di testo con la riga Start file.
Quando crei un file, puoi utilizzare variabili di sistema o parti di esse nel suo nome. Ad esempio, puoi creare un file di report sul funzionamento di un file bat con un nome uguale alla data di avvio del file bat. Per fare ciò, puoi utilizzare le seguenti righe nel file bat.

imposta datatemp=%data:~-10%
@echo .>%SYSTEMDRIVE%\%DATETEMP%.txt

Queste due linee funzionano in questo modo. Per prima cosa creiamo in memoria una variabile datetemp, alla quale assegniamo 10 caratteri da destra a sinistra dalla variabile di sistema DATE. Pertanto, ora la variabile temporanea datetemp contiene solo la data corrente. Con la riga successiva reindirizziamo l'output del simbolo del punto in un file, il cui nome è preso dalla variabile datetemp e l'estensione txt è specificata esplicitamente. Il file verrà creato sul disco di sistema del computer su cui viene eseguito il file bat.

Quando un amministratore raccoglie informazioni sui computer della rete, sarà più conveniente aggiungere il nome del computer al nome del file. Questo può essere fatto facilmente usando il seguente comando:

@echo .>C:\NomeCartella\%NOMECOMPUTER%.txt

Questo comando, durante l'esecuzione di un file batch, creerà un file di testo sull'unità C con il nome del computer su cui è in esecuzione il file batch.
Per creare un file con un nome specifico, è possibile utilizzare qualsiasi variabile di sistema oppure crearne uno personalizzato in base alle variabili di sistema e/o ad altri dati.

Come creare una cartella da un file bat

Per creare una cartella, utilizzare il comando MKDIR o il suo equivalente abbreviato MD. Per creare una cartella da un file bat è necessario utilizzare il seguente comando:

Dopo aver eseguito questo comando, verrà creata una cartella NomeCartella nella cartella da cui è stato lanciato il file bat. Per creare un file in una posizione diversa da quella in cui è stato avviato il file bat, ad esempio nella radice dell'unità D, utilizzare un'indicazione esplicita della posizione della nuova cartella. Il comando sarà simile al seguente:

MD D:\NomeCartella

Quando crei le cartelle, puoi utilizzare le variabili di sistema. Ad esempio, puoi creare una cartella nella radice dell'unità D con il nome dell'utente corrente. Per fare ciò, avrai bisogno della variabile %USERNAME% e il comando sarà simile a questo:

MD D:\%NOMEUTENTE%

Puoi complicare ulteriormente il comando e creare una cartella con il nome dell'utente corrente sull'unità di sistema del suo computer. Il comando per questo sarebbe simile a questo:

MD %UNITÀ DI SISTEMA%\%NOMEUTENTE%

Quando si creano cartelle o file, è possibile utilizzare qualsiasi variabile di sistema o parte di essa. L'esempio seguente dimostra la creazione di una cartella sull'unità di sistema del computer dell'utente con un nome uguale alla data corrente.

imposta datatemp=%data:~-10%
MD %SYSTEMDRIVE%\%datetemp%

Questo disegno funziona come segue.
Il primo comando crea una variabile datetemp in memoria, che verrà distrutta al termine dell'esecuzione del file bat. Fino a quando il file bat non avrà terminato il suo lavoro è possibile operare con il valore di questa variabile. Alla variabile datetemp vengono assegnati 10 caratteri da destra a sinistra della variabile di sistema DATE, ad es. dalla data attuale. La variabile DATE ha il formato Giorno GG.MM.AAAA. I primi caratteri a sinistra sono il nome del giorno della settimana, quindi li scartiamo e assegniamo solo la data corrente alla variabile temporanea datetemp.
Ciò non limita l'elenco delle possibilità durante la creazione di cartelle. Puoi manipolare le variabili nel modo desiderato, creando cartelle con nomi univoci e di facile lettura. È possibile ottenere un elenco di tutte le variabili utilizzando il comando SET.

Come reindirizzare il risultato dell'esecuzione del comando su un file

Spesso, quando si esegue un file bat complesso in modalità automatica, controllare i risultati del suo lavoro può essere difficile per molte ragioni. Pertanto, è più semplice scrivere i risultati dei comandi del file batch in un file di testo (file di registro). e quindi analizzare il corretto funzionamento del file bat utilizzando questo registro.
Reindirizzare il risultato dei comandi del file bat in un file di registro è abbastanza semplice. Di seguito verrà mostrato come ciò può essere fatto.
Crea un file bat con il seguente contenuto (copia queste righe nel Blocco note e salva il file con l'estensione bat):

@eco disattivato
eco Avvia %time%
echo Crea test.txt
echo test>C:\test.txt
echo Copia Test.txt in Old_test.txt
copia C:\test.txt C:\Old_test.txt
eco Interrompi %time%

La prima riga disabilita l'output dei comandi stessi. Pertanto, nel file di registro verranno scritti solo i risultati della loro esecuzione.
La seconda riga scrive nel file di registro l'ora di inizio del file batch.
La terza riga scrive nel file di registro una spiegazione che il seguente comando creerà un file test.txt
Il comando della quarta riga crea un file test.txt dalla radice dell'unità C. Il file viene creato ad esempio. Questo comando scrive la parola test nel file C:\test.txt
La quinta riga stampa nel file di registro una spiegazione che il seguente comando copia un file da una posizione a un'altra.
Il comando nella sesta riga copia il file creato C:\test.txt nel file C:\Old_test.txt, cioè una copia del file viene creata con un nuovo nome.
L'ultima, la settima riga, contiene un comando per visualizzare l'ora di completamento del file batch. Insieme alla registrazione dell'ora di inizio del file batch nel file di registro, questi due valori temporali consentono di stimare il tempo di esecuzione del file batch.

Salva questo file batch con un nome come 1.bat
Supponiamo di voler archiviare un report sul funzionamento di un file batch in una cartella separata e scrivere ogni giorno un report con un nuovo nome di file, in modo da poter accedere in qualsiasi giorno ai log dei giorni precedenti. Inoltre, vorrei avere il nome del file di registro sotto forma di data di funzionamento del file batch. Per implementare tutto ciò, creiamo una cartella sul disco C (ad esempio) denominata LOG, ovvero il percorso completo sarà simile a C:\LOG. Eseguiremo il file batch creato 1.bat con il seguente comando:

1.bat>C:\LOG\%data~-10%.txt

Se il file batch verrà avviato dallo Scheduler, sarà necessario specificare il percorso completo del file bat. Ricorda che se ci sono spazi nel percorso, devi usare le virgolette o il formato 8.3. Cioè, se il percorso del file bat è, ad esempio, C:\Programmi\1.bat, nella riga di comando dello Scheduler per eseguire il file bat è necessario specificare una delle seguenti righe:

"C:\Programmi\1.bat">C:\LOG\%date~-10%.txt
C:\Progra~1\1.bat>C:\LOG\%data~-10%.txt

Dopo aver eseguito il file 1.bat, nella cartella C:\LOG verrà creato un file con un nome uguale alla data di avvio del file bat, ad esempio 01/13/2004.txt Questo sarà un report sul funzionamento del file batch 1.bat
L'esecuzione del file bat, di cui un esempio è mostrato nel primo elenco in alto nella pagina, tramite il comando sopra riportato, porterà alla creazione di un file di log con il seguente contenuto:

Inizio 19:03:27.20
Crea test.txt
Copia Test.txt in Old_test.txt
File copiati: 1.
Sosta 19:03:27.21

Pertanto, per reindirizzare i risultati di un file bat in un file di registro, è necessario utilizzare il simbolo di reindirizzamento > La sintassi è la seguente:

Percorso\NomeFile.bat>Percorso\NomeFileLog.txt

L'estensione del file di registro può essere qualsiasi cosa. Se lo si desidera, un report sull'esecuzione di un lavoro batch può anche essere formattato come una pagina html (i tag corrispondenti possono essere emessi in un file di registro nello stesso modo in cui sono stati emessi i commenti nell'esempio 1.bat) e copiato in un file aziendale. server.

Come rispondere automaticamente a una richiesta di conferma

Alcuni comandi richiedono la conferma di un'azione potenzialmente pericolosa quando vengono eseguiti. Ad esempio, comandi come format o del chiederanno prima la conferma prima dell'ulteriore esecuzione. Se uno di questi comandi viene eseguito in un file batch, la richiesta di conferma interromperà l'esecuzione del file batch e attenderà che l'utente selezioni una delle opzioni fornite. Inoltre, se il risultato dell'esecuzione di un file batch viene reindirizzato a un file di registro, l'utente non vedrà una richiesta di conferma e il file batch apparirà congelato.

Per correggere tali problemi, puoi reindirizzare la risposta desiderata al comando. Quelli. eseguire l'azione inversa per reindirizzare l'output del comando su un file.
Diamo un'occhiata ad un esempio di come si presenta una richiesta di conferma di un'azione potenzialmente pericolosa. Creiamo, ad esempio, una cartella Cartella sull'unità C. Creiamo o copiamo due file qualsiasi al suo interno. Successivamente, apri la riga di comando ed esegui il seguente comando:

Questo comando dovrebbe rimuovere tutti i file dalla cartella specificata. Ma prima ti verrà chiesto di confermare il seguente contenuto:

C:\Cartella\*, Continuare ?

L'esecuzione del comando verrà interrotta finché non verrà premuto il tasto Y o il tasto N. Quando si esegue un file batch in modalità automatica, la sua esecuzione verrà interrotta.
Per evitare ciò utilizziamo il reindirizzamento. Il reindirizzamento viene effettuato utilizzando il simbolo
La linea verticale indica che invece di visualizzare il simbolo sullo schermo, occorre “darlo” al comando che segue il simbolo. Controlliamo il reindirizzamento. Esegui il seguente comando dalla riga di comando:

echo Y|del C:\Cartella

Sullo schermo verrà visualizzata una richiesta di conferma dell'eliminazione di tutti i file nella cartella Cartella, ma con una risposta positiva (S). Tutti i file nella cartella Cartella verranno eliminati.
Fai attenzione con questo comando.

Come disabilitare i comandi visualizzati durante l'esecuzione di un file batch

Quando si esegue un file batch, oltre ai risultati del comando vengono visualizzati anche i comandi stessi. È possibile utilizzare il simbolo @ per sopprimere l'output del comando.
Per evitare di stampare un comando sullo schermo, puoi inserire un segno @ all'inizio del comando.

Questo comando visualizzerà il comando echo Testing e, nella riga successiva, il risultato della sua operazione, la parola Testing.

Questo comando visualizzerà solo il risultato del comando, ad es. la parola Prova. Il comando stesso non verrà restituito.
Se non è necessario visualizzare i comandi sullo schermo durante l'esecuzione dell'intero file, è più semplice scrivere il seguente comando come prima riga nel file batch:

Questo comando disabiliterà l'output del comando sullo schermo per la durata dell'intero file batch. Per evitare che il comando stesso venga stampato, inizia con il simbolo @.

Come eseguirne un altro da un file bat

A volte, durante l'esecuzione di un file batch, diventa necessario eseguire un altro file batch. Inoltre, in alcuni casi, l'esecuzione del file batch principale deve essere sospesa mentre viene eseguito il file ausiliario, mentre in altri il file ausiliario deve essere eseguito parallelamente a quello principale.
Ad esempio, creiamo due file bat. Uno chiamato 1.bat e contenente un solo comando

Il secondo si chiama 2.bat e contiene anch'esso un comando

Ora eseguiamo il file 1.bat, si aprirà una finestra in cui vi verrà chiesto di premere un tasto qualsiasi per proseguire, dopo averlo premuto la finestra si chiuderà. Pertanto, richiamando un file batch a un altro utilizzando il comando call si interrompe l'esecuzione del file batch finché il file batch richiamato dal comando call non completa l'esecuzione.

In un altro caso, è necessario avviare un'applicazione o un altro file batch da un file bat senza interrompere l'esecuzione del file batch principale. Spesso è necessario farlo, ad esempio, aprendo forzatamente il log di un file batch programmato per la notte, in modo che al mattino l'utente possa verificare la correttezza della sua esecuzione. Per fare questo usate il comando start Correggiamo la riga nel file 1.bat in

ed eseguire il file 1.bat, ora si è aperta una finestra in cui è necessario premere un pulsante qualsiasi per continuare e si è chiusa la finestra del file batch principale (1.bat).
Pertanto, per richiamarne un altro da un file batch, senza interrompere il primo file batch, è necessario utilizzare il comando start.
I comandi di avvio e chiamata discussi sopra possono essere utilizzati non solo per avviare altri file batch, ma anche per avviare qualsiasi applicazione o aprire file.
Ad esempio, il comando start log.txt nel corpo di un file batch aprirà il file log.txt nel Blocco note senza arrestare il file batch.

Come inviare un messaggio da un file bat

Quando un file batch viene eseguito su una delle macchine della rete, è conveniente informare l'amministratore che la sua esecuzione è terminata utilizzando un messaggio inviato alla macchina dell'amministratore. Puoi farlo includendo il comando nel file batch

net send name Testo del messaggio

Dove nome è il nome della macchina o dell'utente a cui è indirizzato il messaggio e Testo messaggio è il testo del messaggio. Dopo aver eseguito questo comando, verrà inviato un messaggio al nome utente.
Tieni presente che quando si utilizza il cirillico nel testo di un messaggio, il testo deve essere digitato con la codifica MS-DOS (code page 866). Altrimenti il ​​messaggio arriverà sotto forma di caratteri illeggibili. È possibile digitare testo nella codifica DOS utilizzando qualsiasi editor di testo che supporti questa codifica. Questo potrebbe essere, ad esempio, FAR. Aprire un file batch per la modifica in FAR (F4) e premere il pulsante F8. La riga superiore dell'editor dovrebbe indicare la codifica DOS e in basso, nella descrizione dei tasti di scelta rapida, il tasto F8 dovrebbe avere la scritta Win, che indica che la codifica corrente è DOS e che devi passare alla codifica Win per premere F8.

Come automatizzare l'eliminazione dei file per tipo

Per cancellare il disco dai file temporanei, puoi utilizzare il comando

del /f /s /q C:\*.tmp

Dove
/f - elimina tutti i file, anche se hanno impostato l'attributo di sola lettura
/s: elimina i file da tutte le sottodirectory
/q - disabilita la richiesta di conferma dell'eliminazione del file
C: è l'unità su cui verranno trovati ed eliminati i file. È possibile specificare non l'intero disco, ma una cartella, ad esempio C:\WinNT
*.tmp: tipo di file che verrà eliminato

Fai attenzione all'opzione /q e ai tipi di file che elimini. Il comando elimina senza chiedere il permesso e, se viene specificato il tipo di file sbagliato, può eliminare i file non necessari.

Come modificare l'indirizzo IP di un computer da un file batch

L'indirizzo IP può essere modificato utilizzando il comando netsh.
Per modificare correttamente l'indirizzo IP, devi prima scoprire la configurazione attuale. Questo può essere fatto sulla riga di comando utilizzando il comando

indirizzo IP dell'interfaccia netsh

Il risultato di questo comando è visualizzare la configurazione corrente dell'interfaccia di rete. A noi interessa il nome dell'interfaccia. Diciamo che si chiama FASTNET.
Ipotizziamo di dover modificare l'indirizzo IP in 192.168.1.42, l'indirizzamento di rete è statico, senza utilizzare DHCP, il gateway è 192.168.1.1, la maschera è 255.255.255.0, in questo caso il comando che deve essere eseguito da il file batch sarà simile al seguente:

netsh interfaccia ip set indirizzo nome="FASTNET" statico 192.168.1.42 255.255.255.0 192.169.1.1 1

Dopo aver eseguito questo comando l'indirizzo IP dell'interfaccia FASTNET cambierà in 192.168.1.42.
Il comando netsh fornisce funzionalità estese per la gestione delle impostazioni di rete dalla riga di comando. Per altre funzionalità, vedere la guida sull'utilizzo di netsh /?

Come scoprire il nome del computer da un file bat

Per scoprire il nome del computer durante l'esecuzione di un file bat (per utilizzare questo valore in futuro), utilizzare il comando

Questo comando restituisce il nome del computer su cui è in esecuzione.

Come rinominare i file tramite maschera da un file batch

A volte diventa necessario rinominare tutti i file in una cartella utilizzando un modello da un file batch. Questo può essere fatto usando il seguente comando nel file bat:

for /f "tokens=*" %%a in ("dir /b PATH\*.*") do ren PATH\%%a Prefisso%%a

In questa riga, è necessario sostituire PATH\ con il percorso dei file che verranno rinominati e Prefix con i caratteri che verranno aggiunti al nome del file durante la ridenominazione.
Non inserire il file batch nella cartella in cui viene eseguita la ridenominazione, altrimenti verrà rinominato anch'esso. Se nella cartella in cui i file vengono rinominati sono presenti sottocartelle, al nome della sottocartella verrà aggiunto anche un prefisso, ad es. le sottocartelle verranno rinominate come file.
Se si specifica una maschera specifica per i tipi di file soggetti a ridenominazione, ad esempio *.txt e non *.* come nell'esempio, verranno rinominati solo i file dei tipi specificati. Gli altri file e cartelle non verranno rinominati.

Seconda opzione:
impostare il PERCORSO=C:\test
per %%I in (*.txt) fai ren "%thePATH%\%%~nxI" "%%~nI.dat"
Come utilizzare il simbolo di percentuale in un file batch

Per utilizzare il simbolo di percentuale (%) in un file batch, è necessario scriverlo due volte. Per esempio
eco 50%%
Questo comando nel file bat visualizzerà il 50%. Se usi il comando echo 50%, sullo schermo verrà visualizzato solo il numero 50.
Tieni in considerazione questa funzionalità quando usi il simbolo % durante la scrittura di file batch.

Come esportare il registro da un file batch

regedit.exe -ea C:\environment.reg "HKEY_CURRENT_USER\Ambiente"

Questo comando, durante l'esecuzione di un file batch, scaricherà il ramo HKEY_CURRENT_USER\Environment nel file C:\environment.reg. Quando sarà necessario ripristinare i valori dei parametri in HKEY_CURRENT_USER\Environment, sarà sufficiente eseguire Environment.reg file. Questo comando può essere utilizzato per eseguire un backup giornaliero del software e delle impostazioni di sistema archiviate nel registro.
Non dimenticare che se nel percorso in cui deve essere salvato il file di output o nel nome dell'hive del registro è presente uno spazio, questi devono essere racchiusi tra virgolette.

Come importare i valori delle variabili di registro da un file batch

Se è necessario importare valori di variabile precedentemente salvati o nuovi nel registro da un file batch, è possibile farlo utilizzando il comando

regedit.exe -s C:\ambiente.reg

Questo comando importa i dati dal file Environment.reg nel registro senza richiedere conferma utilizzando l'opzione -s.

Come bypassare il controllo della data da un file bat

Alcuni software controllano la data corrente del sistema all'avvio. Se la data è successiva a quella impostata dallo sviluppatore, il programma non si avvia. Ad esempio, uno sviluppatore ritiene che una versione di un programma possa funzionare per un mese, quindi l'utente dovrà installare una versione aggiornata del programma. Da un lato, questa è una preoccupazione per l'utente, che avrà a sua disposizione l'ultima versione del programma con le carenze eliminate rispetto alle versioni precedenti. D'altra parte, il produttore obbliga l'utente a scaricare una nuova versione anche se l'utente è completamente soddisfatto della versione del programma che ha installato. Questo problema può essere facilmente risolto utilizzando il seguente file batch, che eseguirà il programma, attenderà il suo completamento e riporterà la data a quella precedente all'avvio del programma.

imposta tempdata=%data:~-10%
data 01-01-04
notepad.exe
data %tempdata%

In questo esempio, la data di sistema corrente viene prima memorizzata in una variabile, quindi (nella seconda riga) la data di sistema viene impostata al 1 gennaio 2004, quindi viene richiamato un programma che controlla la data di sistema. In questo esempio è Blocco note. Finché il Blocco note è aperto, il file batch attende senza completare o reimpostare la data di sistema. Una volta chiuso il Blocco note, il file batch continuerà l'esecuzione e imposterà la data di sistema sul valore memorizzato nella variabile tempdate, ovvero a quello precedente all'esecuzione del file batch.

Non dimenticare che se il percorso del file che esegue il programma contiene spazi, allora (il percorso) deve essere racchiuso tra virgolette. Se il percorso contiene cirillico, quando si scrive un file batch è necessario utilizzare un editor di testo che supporti la codifica DOS (ad esempio FAR). Altrimenti, quando si esegue il file batch, verrà visualizzato un messaggio che informa che "il file specificato non è un comando interno o esterno...".

Se un programma controlla la data corrente del sistema solo all'avvio e non lo fa nuovamente durante il funzionamento, il file batch può essere modificato aggiungendo un'istruzione start prima del nome del file eseguibile del programma, ad es. il nostro esempio sarà simile al seguente:

imposta tempdata=%data:~-10%
data 01-01-04
avviare notepad.exe
data %tempdata%

In questo caso, il file batch modificherà la data del sistema, avvierà il programma e, senza attendere il suo completamento, riporterà la data a quella precedente all'avvio del programma.

Come attendere che un file specifico venga visualizzato in un file bat

A volte è necessario eseguire alcune azioni quando un determinato file appare in una cartella. Per organizzare un controllo dell'aspetto di un file in una cartella, è possibile utilizzare il seguente file batch

:test
se esiste c:\1.txt vai avanti
dormire 10
vai al test
:andare
bloc notes

Tale file batch controllerà a intervalli di 10 secondi la presenza del file 1.txt nella radice dell'unità C e quando verrà visualizzato il file 1.txt, verrà eseguita l'azione specificata dopo l'etichetta go, ovvero questo esempio avvierà Blocco note.
L'utilità di sospensione è distribuita gratuitamente come parte del Resource Kit. Potete scaricarlo qui.
Se il file 1.txt è di grandi dimensioni e viene copiato da qualche parte, può accadere che il file batch ne controlli la presenza mentre il file non è stato ancora copiato o è occupato con un'altra applicazione. In questo caso, provare a eseguire alcune azioni con il file 1.txt risulterà in un errore. Per evitare che ciò accada, il file batch può essere modificato come segue

:test
se esiste c:\1.txt vai avanti
dormire 10
vai al test
:andare
rinominare c:\1.txt 1.txt
in caso contrario, livello di errore 0, vai avanti
del c:\1.txt

Quando il file 1.txt non è stato copiato completamente sul drive C, oppure è occupato da un'altra applicazione, un tentativo di rinominarlo causerà un errore e il ciclo si ripeterà finché il file non verrà copiato completamente o verrà liberato. Dopo che il comando rinomina c:\1.txt 1.txt è stato eseguito senza errori (ovvero il file è libero), puoi eseguire qualsiasi azione con esso. Nell'ultimo esempio lo sta rimuovendo.

Come aggiungere commenti a un file bat

Quando si scrive un file batch di grandi dimensioni, è molto utile aggiungere commenti ai suoi blocchi principali. Ciò renderà più facile capire cosa fanno questi blocchi nel tempo.