Archivio

Posts Tagged ‘ms-dos’

Scrivere su un file in MS-Dos Batch

27 settembre 2008 admin Nessun commento

In MS-Dos non esistono le classiche funzioni per la scrittura su un file, ma ci si può arrangiare.

con > l’output di un comando viene scritto su un file cancellando quello che c’è dentro
con >> l’output di un comando viene scritto su un file in coda a quello che gia c’è

ad esempio
dir > file.txt
non stampa il contenuto della directory a monitor ma sul file file.txt

allo stesso modo con i comandi

echo “contenuto della cartella film\n\r” >> file.txt
dir film >> file.txt
echo “contenuto della cartella musica\n\r” >> file.txt
dir musica >> file.txt

andremo ad inserire nel file file.txt il contenuto delle cartelle film e musica
echo “del testo bla bla bla” >> file.bat
scrive quello che c’è tra virgolette nel file .bat

mi raccomando le virgolette altrimenti lo spazio tra una parola e l’altra viene interpretato come separazione tra più comandi

per tab invio ecc si usano i codici \t \n\r ecc

Categorie:MS-Dos Tag: ,

Creare un menu in MS-Dos batch

27 settembre 2008 admin Nessun commento
Fare un batch può sempre tornare utile prima o poi, e riutilizzare un batch senza doverne fare un’altro anche.Quando si fa un menù in un batch per ms-dos dobbiamo organizzare lo script in blocchi ai quali assegnamo delle etichette, con il comado goto si sposta l’esecuzione dello script all’etichetta scelta.

Per catturare il tasto premuto e selezionare la scelta si usano i comandi choice /c se stiamo usando un windows basato su dos come il 98 e precedenti, set /p se stiamo usando un windows basato su nt come xp.

Ecco un esempio di menu con choice:

@echo off
cls

:RICHIESTE
echo.
echo Preferici il mare o la montagna?
echo (1) Mare
echo (2) Montagna
echo.
choice /c 12 /m "Seleziona una risposta..."

if errorlevel 2 goto DUE
if errorlevel 1 goto UNO
if not errorlevel 0 goto RICHIESTE

:UNO
echo Hai scelto mare
pause
goto END

 :D UE
echo Hai scelto montagna
pause
goto END

:END
echo.
echo Ciao ciao
echo.
pause
cls
@echo on

Ed ecco lo stesso esempio con set /p:

@echo off
cls

:RICHIESTE
echo.
echo Preferici il mare o la montagna?
echo (1) Mare
echo (2) Montagna
echo.
set /p var="Seleziona una risposta...":
set var=%var:~0,1%
if "%var%"=="1" goto UNO
if "%var%"=="2" goto DUE
echo Seleziona 1 o 2
goto RICHIESTE

:UNO
echo Hai scelto mare
pause
goto END

 :D UE
echo Hai scelto montagna
pause
goto END

:END
echo.
echo Ciao ciao
echo.
pause
cls
@echo on
Categorie:MS-Dos Tag: ,