"mulkrul" ha scritto nel messaggio news:pao87s$2ta$1...@dont-email.me...
> Dove si può vedere il risultato del comando se la finestra si chiude
> immediatamente?
Questa domanda viene subito sotto una citazione del mio testo in cui
parlavo dell'interfaccia a riga di comando, mentre la finestra che si
chiude immediatamente e' quella che ottiene lanciando il comando da
Esegui e non dall'interfaccia a riga di comando.
Per esempio, il risultato di ipconfig si legge nell'interfaccia a riga
di comando, cioe' si apre prima l'interfaccia da Start - Tutti i
programmi - Accessori - Prompt dei comandi, si lancia il programma
scrivendo "ipconfig" e dando Invio ed infine si legge il risultato nella
finestra stessa denominata "Prompt dei comandi", che e' l'ambiente per
il quale il programma ipconfig e' stato pensato e per il quale
restituisce un risultato.
Lanciare ipconfig da Esegui fa si' che si apra una finestra
dell'interfaccia a riga di comando (perche' e' la' che ipconfig deve
mandare il suo risultato) ed il comando ipconfig termini; come
conseguenza della terminazione del comando ipconfig, viene terminata
anche l'istanza dell'interfaccia a riga di comando, che ha gia'
esplicato la sua funzione, e cioe', ripeto, quella del solo visualizzare
il risultato del comando ipconfig; la visualizzazione e' istantanea
perche' il risultato del comando e' istantaneo. Mantenere aperta
l'interfaccia per permettere la lettura del messaggio all'essere umano,
che non riesce a leggere immediatamente tutto, non fa parte del
funzionamento del comando ipconfig, se il messaggio deve essere letto
dall'essere umano, il che non e' sempre vero, allora va stampato.
> non conoscevo il trucchetto del parametro "/k". Ho fatto un po' di
> prove
Le opzioni sono proprie dello specifico comando, ne modificano o
specificano il comportamento e non sono "generali" (vedi la nota in
basso), cioe' non modificano il comportamento di qualunque programma
allo stesso modo. Usare /K modifica il comportamento del programma cmd
ed e' il programma cmd che e' stato scritto in modo che l'opzione /K
abbia l'effetto di mantenere la finestra aperta.
> Qual è il motivo di questi risultati bizzarri?
Che in alcuni casi hai provato a dare dei parametri ed hai creato delle
combinazioni di applicazioni in una maniera che non e' stata
programmata. In particolare:
1) ipconfig non ha l'opzione /K, quindi "ipconfig /K" non viene
compreso, restituisce un errore e la guida del comando ipconfig
(quest'ultima e' una "cortesia" dei programmatori della Microsoft);
2) cmd senza opzioni lancia un'istanza dell'interprete a linea di
comando, il resto viene ignorato, perche' e' cosi' che e' stato pensato
il programma cmd (vedi Fonte)
3) cmd ha l'opzione /K ed e' stato creato in modo che "Se è specificato
/C o /K, la parte restante della riga di comando dopo l'opzione viene
elaborata come una riga di comando", come puoi leggere anche nell'aiuto
integrato del comando cmd (Start - Tutti i programmi - Accessori -
Prompt dei comandi, scrivi "help cmd" e dai Invio).
Nota
I comandi come ipconfig oppure cmd hanno delle opzioni che solo talvolta
coincidono, anche se cio' e' ritenuto da alcuni desiderabile: in
generale, cioe', si tende a dare ad un comando delle opzioni che un
utente del programma stesso puo' "indovinare" facilmente senza
studiarsene prima la documentazione.
Per esempio, l'aiuto integrato dell'interprete a riga di comando di
Windows viene lanciato col comando "help" seguito dal nome del
programma, scrivendo quindi "help attrib" si ottiene:
Visualizza o cambia gli attributi dei file.
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [unità:][perc]
[nomefile] [/S]
+ Imposta un attributo.
- Cancella un attributo.
R Attributo di file di sola lettura.
A Attributo di file di archivio.
S Attributo di file di sistema.
H Attributo di file nascosto.
[unità:][perc][nomefile]
Specifica uno o più file da elaborare.
/S Elabora i file specificati presenti nella cartella corrente e in
tutte le sottocartelle.
/D Elabora anche le cartelle.
Se il comando invece non e' presente nella guida, come per esempio
accade per il programma inesistente "pass" (quindi scrivendo ad esempio
"help pass"), si ottiene
Comando non supportato dalla utilità di Guida. Provare "x /?".
Come si puo' vedere, l'opzione "/?" viene considerata come quella
"generale" per un comando pensato per l'interprete, quindi a voler
scrivere un comando pensato per l'interprete in Windows sarebbe
probabilmente desiderabile aggiungere l'opzione "/?" come predefinita
per ottenere l'aiuto integrato al comando stesso.
Fonte
In inglese, sul sito della Microsoft archiviato tramite
archive.org
https://web.archive.org/web/20040405072147/http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx