Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: programmino in msdos

  1. #1

    programmino in msdos

    ciao a tutti!
    ho creato un programmino in ms-dos che va a cancellare tutti i file da una cartella.
    vorrei però, che prima di lanciarlo (vista la sua "pericolosità") mi chiedesse:
    "vuoi cancellare s/n"?

    come posso fare in dos?
    ovviamente con "s" parte il mio script e con "n" no!

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Fai questa prova. Crea un nuovo file batch e scrivi questo:

    codice:
    @echo off
    @cls
    choice /c:SN Continuare con la cancellazione 
    @cls
    if errorlevel 2 goto annullata
    echo Cancellazione in corso...
    goto end
    :annullata
    echo Cancellazione annullata
    :end
    ... e non usare while wend è una sintassi deprecata

  3. #3
    Originariamente inviato da Mabi
    Fai questa prova. Crea un nuovo file batch e scrivi questo:

    codice:
    @echo off
    @cls
    choice /c:SN Continuare con la cancellazione 
    @cls
    if errorlevel 2 goto annullata
    echo Cancellazione in corso...
    goto end
    :annullata
    echo Cancellazione annullata
    :end
    giusto, il choice! chi se lo ricordava più??

    però la console di ms-dos di xp mi dice che choice non è riconosciuto

  4. #4
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Effettivamente avevo provato soltanto su Win98.
    Quindi ho fatto qualche ricerca e ho letto che il choice nel 2000 e in Xp non è più presente.
    Ho trovato però una spiegazione di come poterne fare a meno usando il SET:

    codice:
    @ECHO off
    cls
    :start
    ECHO.
    ECHO 1. Print Hello
    ECHO 2. Print Bye
    ECHO 3. Print Test
    set choice=
    set /p choice=Type the number to print text.
    if not '%choice%'=='' set choice=%choice:~0,1%
    if '%choice%'=='1' goto hello
    if '%choice%'=='2' goto bye
    if '%choice%'=='3' goto test
    ECHO "%choice%" is not valid please try again
    ECHO.
    goto start
    :hello
    ECHO HELLO
    goto end
    :bye
    ECHO BYE
    goto end
    :test
    ECHO TEST
    goto end
    :end
    ... e non usare while wend è una sintassi deprecata

  5. #5
    Grazie funziona!
    Secondo voi è possibile colorare una parola nella shell di DOS come in alcuni vecchi giochi?

  6. #6
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Secondo me, direttamente nella shell no.
    Al massimo del promt puoi cambiare interamente le impostazioni del colore (tutto il testo e tutto lo sfondo).
    Ricordo anch'io che lanciando applicativi per DOS dal promt, venivano visualizzate anche le singole parole di un colore diverso. Secondo me però l'effetto è da attribuire al programma che utilizza delle librerie che lo permettono.
    ... e non usare while wend è una sintassi deprecata

  7. #7
    infatti.... ho fatto una breve ricerca in rete ma non ho trovato nulla...
    grazie cmq

  8. #8

    Re: programmino in msdos

    Originariamente inviato da SuperMariano81
    ciao a tutti!
    ho creato un programmino in ms-dos che va a cancellare tutti i file da una cartella.
    vorrei però, che prima di lanciarlo (vista la sua "pericolosità") mi chiedesse:
    "vuoi cancellare s/n"?

    come posso fare in dos?
    ovviamente con "s" parte il mio script e con "n" no!
    Tieni conto però che già di suo il comando del, se gli passi come argomento *.*, ti chiede conferma:
    codice:
    D:\Documents and Settings\Matteo\test>del *.*
    D:\Documents and Settings\Matteo\test\*.*, Procedere con l'operazione (S/N)?
    e così pure rmdir con lo switch /s:
    codice:
    D:\Documents and Settings\Matteo\test>rmdir /s prova
    prova, Procedere con l'operazione (S/N)?
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    ciao Mitaly!
    certo che DEL mi chiede conferma, ma devo cancellare circa 25 dir dovrei dare 25 "si"....
    invece a me interessa che lo faccia in maniera silenziosa, però prima voglio che me lo chieda almeno una volta per evitare di avviarlo accidentalmente cancellando magari lavori preziosi.


  10. #10
    Allora fai così:
    codice:
    @ECHO OFF
    COLOR E4
    :INIZIO
    SET /P scelta=Vuoi davvero cancellare millemila cartelle? (S/N)
    IF /I %scelta%==S GOTO :CANCELLA
    IF /I %scelta%==N GOTO :EOF
    ECHO Scelta non valida.
    GOTO :INIZIO
    :CANCELLA
    COLOR 07
    ECHO Cancellazione in corso...
    RMDIR nomecartella1 /s /q
    RMDIR nomecartella2 /s /q
    RMDIR nomecartella3 /s /q
    REM eccetera
    ECHO Cancellazione completata.
    PAUSE
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.