batch-file
Creazione di file tramite batch
Ricerca…
introduzione
Sintassi
- echo (digita qui ciò che vuoi nell'essere) >> (nomefile)
- echo (nome variabile) >> (nome file)
Osservazioni
Se esiste un file, >
sovrascriverà il file e >>
verrà aggiunto alla fine del file. Se un file non esiste, entrambi creeranno un nuovo file.
Inoltre, il comando echo
aggiunge automaticamente una nuova riga dopo la stringa.
Così
echo 1 > num.txt
echo 1 > num.txt
echo 2 >> num.txt
creerà il seguente file:
1
2
Non questo:
1 1 2
o
1 2
Inoltre, non è possibile modificare una singola riga in un file di testo. Devi leggere l'intero file, modificarlo nel tuo codice e poi scrivere di nuovo sull'intero file.
reindirizzamento
Formato:
[command] [> | >>] [filename]
>
salva l'output di [comando] in [nomefile].
>>
aggiunge l'output di [comando] in [nomefile].
Esempi:
echo Hello World > myfile.txt
salva "Hello World" in myfile.txtecho your name is %name% >> myfile.txt
aggiunge "il tuo nome è xxxx" in myfile.txtdir C:\ > directory.txt
salva la directory di C: \ in directory.txt
Echo per creare file
Modi per creare un file con il comando echo:
ECHO. > example.bat (creates an empty file called "example.bat")
ECHO message > example.bat (creates example.bat containing "message")
ECHO message >> example.bat (adds "message" to a new line in example.bat)
(ECHO message) >> example.bat (same as above, just another way to write it)
Se si desidera creare un file tramite il comando ECHO
, in una directory specifica sul computer, si potrebbe incorrere in un problema.
ECHO Hello how are you? > C:\Program Files\example.bat
(This will NOT make a file in the folder "Program Files", and might show an error message)
Ma allora come lo facciamo? Beh, in realtà è estremamente semplice ... Quando digiti un percorso o un nome di file che ha uno spazio incluso nel suo nome, ricorda di usare "virgolette"
ECHO Hello how are you? > "C:\Program Files\example.bat"
(This will create "example.bat" in the folder "Program Files")
Ma cosa succede se si desidera creare un file che emette un nuovo file?
ECHO message > file1.bat > example.bat
(example.bat is NOT going to contain "message > file1.bat")
example.bat will just contain "message"... nothing else
Allora come lo facciamo? Bene per questo usiamo il simbolo ^
.
ECHO message ^> file1.bat > example.bat
(example.bat is going to contain "message > file1.bat")
Lo stesso vale per altre cose in batch
Il prossimo passo richiede di avere una certa conoscenza di variabili e dichiarazioni:
clicca qui per conoscere le variabili | clicca qui per sapere se e else dichiarazioni
variabili:
SET example="text"
ECHO %example% > file.bat
(This will output "text" to file.bat)
se non vogliamo che produca "testo" ma semplicemente% esempio% quindi scrivi:
ECHO ^%example^% > file.bat
(This will output "%example%" to file.bat)
Istruzioni IF / ELSE:
ELSE statements are written with "pipes" ||
IF ^%example^%=="Hello" ECHO True || ECHO False > file.bat
(example.bat is going to contain "if %example%=="Hello" echo True")
[it ignores everything after the ELSE statement]
per produrre l'intera linea, facciamo lo stesso di prima.
IF ^%example^%=="Hello" ECHO True ^|^| ECHO False > file.bat
This will output:
IF %example%=="Hello" ECHO True || ECHO False
Se la variabile è uguale a "Hello", allora dirà "True", ELSE dirà "False"
Salvataggio dell'output di molti comandi
Utilizzo di molti comandi ECHO
per creare un file batch:
(
echo echo hi, this is the date today
echo date /T
echo echo created on %DATE%
echo pause >nul
)>hi.bat
L'interprete dei comandi tratta l'intera sezione tra parentesi come un singolo comando, quindi salva tutto l'output su hi.bat
.
hi.bat
ora contiene:
echo hi, this is the date today
date /T
echo created on [date created]
pause >nul