Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - I/O da consolle in batch
Forum - Altri Linguaggi - I/O da consolle in batch - Pagina 3

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Shutdown (Founder Member)
Guru


Messaggi: 1212
Iscritto: 10/09/2005

Segnala al moderatore
Postato alle 18:57
Domenica, 30/12/2007
Per maggiori informazioni dai anche
un'occhiata qui:

Codice sorgente - presumibilmente Delphi

  1. C:\Documents and Settings\shutdown>set /?
  2. Visualizza, imposta o rimuove le variabili d'ambiente di cmd.exe.
  3.  
  4. SET [variabile=[stringa]]
  5.  
  6.  variabile  Specifica il nome della variabile d'ambiente.
  7.   stringa    Specifica una serie di caratteri da assegnare alla variabile.
  8.  
  9. Digitare SET senza parametri per visualizzare le variabili d'ambiente correnti.
  10.  
  11. Se le estensioni ai comandi sono abilitate SET cambia come segue:
  12.  
  13. il comando SET richiamato con un solo nome di variabile, senza segno di uguale o
  14. valore
  15. visualizzerà il valore di tutte le variabili il cui prefisso corrisponda al nom
  16. e
  17. dato al comando SET.  Per esempio:
  18.  
  19.    SET P
  20.  
  21. visualizzerà tutte le variabili che iniziano con la lettera "P"
  22.  
  23. Il comando SET imposterà ERRORLEVEL a 1 se il nome della variabile non viene tro
  24. vato
  25. nell'ambiente corrente.
  26.  
  27. Il comando SET non consente che il segno uguale faccia parte del nome di
  28. una variabile.
  29.  
  30. Sono state aggiunte due nuove opzioni al comando SET:
  31.  
  32.     SET /A espressione
  33.     SET /P variabile=[StringaPrompt]
  34.  
  35. L'opzione /A specifica che la stringa alla destra del segno uguale
  36. è un'espressione numerica che viene calcolata.  Il calcolo dell'espressione
  37. è semplice e supporta le seguenti operazioni, in ordine di
  38. importanza decrescente:
  39.  
  40.    ()                  - raggruppamento
  41.    ! ~ -               - operatori aritmetici
  42.    + -                 - operatori aritmetici
  43.    << >>               - shift logico
  44.    &                   - bitwise e
  45.    ^                   - bitwise esclusivo o
  46.    |                   - bitwise o
  47.    = *= /= %= += -=    - assegnazione
  48.      &= ^= |= <<= >>=
  49.    ,                   - separatore espressione
  50.  
  51. Se si utilizzano operatori logici o di moduli, sarà necessario
  52. racchiudere la stringa dell'espressione entro virgolette.  Le stringhe non numer
  53. iche
  54. nell'espressione vengono considerate come nomi di variabili di ambiente i cui va
  55. lori sono
  56. convertiti in numeri prima che vengano utilizzati.  Se un nome di variabile di a
  57. mbiente
  58. è specificato ma non definito nell'ambiente corrente, allora si utilizza
  59. un valore di zero.  Così è possibile eseguire operazioni aritmetiche con
  60. valori di variabili di ambiente senza dover digitare tutti i segni % per ottener
  61. e i rispettivi
  62. valori.  Se SET /A viene eseguito dalla riga di comando al di fuori di uno
  63. script, verrà visualizzato il valore finale dell'espressione.  L'operatore
  64. dell'assegnazione richiede un nome di variabile di ambiente alla sinistra
  65. dell'operatore di assegnazione.  I valori numerici sono numeri decimali, a meno
  66. che
  67. non siano preceduti da 0x per numeri esadecimali e 0 per numeri ottali.
  68. Così 0x12 è analogo a 18 analogo a 022. Ricordare che la notazione
  69. ottale può generare confusione: 08 e 09 non sono numeri validi poiché 8 e
  70. 9 non sono cifre ottali valide.
  71.  
  72. L'opzione /P consente di impostare il valore di una variabile a una riga di inpu
  73. t
  74. immessa dall'utente.  Visualizza la StringaPrompt specificata prima di leggere
  75. la riga di input.  La StringaPrompt può essere vuota.
  76.  
  77. La sostituzione delle variabili di ambiente è migliorata come segue:
  78.  
  79.     %PATH:str1=str2%
  80.  
  81. espande la variabile di ambiente PATH, sostituendo ciascuna occorrenza
  82. di  "str1" nel risultato espanso con "str2".  "str2" può essere la stringa
  83. vuota per eliminare tutte le occorrenze di "str1" dall'output prodotto
  84. dall'espansione.  "str1" può iniziare con un asterisco, e in tal caso sarà corri
  85. spondente
  86. al punto di inizio dell'output dell'espansione fino alla prima
  87. occorrenza della parte restante di str1.
  88.  
  89. Può anche specificare sottostringhe per un'espansione.
  90.  
  91.    %PATH:~10,5%
  92.  
  93. espande la variabile di ambiente PATH, e quindi utilizza solo i 5
  94. caratteri che cominciano all'undicesimo (offset 10) carattere del risultato
  95. dell'espansione.  Se la lunghezza non è specificata, per impostazione predefinit
  96. a va al
  97. resto del valore della variabile.  Se uno dei numeri(offset o lunghezza) è
  98. negativo, il numero utilizzato è il valore della lunghezza della variabile di
  99. ambiente sommato all'offset o lunghezza specificati.
  100.  
  101.     %PATH:~-10%
  102.  
  103. estrae gli ultimi 10 caratteri della variabile PATH.
  104.  
  105.     %PATH:~0,-2%
  106.  
  107. estrae tutti tranne gli ultimi 2 caratteri della variabile PATH.
  108.  
  109. Infine, è stato aggiunto il supporto per l'espansione ritardata delle variabili
  110.  
  111. di ambiente.  Il supporto è disabilitato per impostazione predefinita, ma è poss
  112. ibile
  113. abilitarlo o meno mediante l'opzione /V del comando CMD.EXE.  Vedere CMD /?
  114.  
  115. L'espansione ritardata della variabile di ambiente è utile per ovviare alle
  116. limitazioni dell'espansione corrente che si verificano quando viene letta
  117. una riga di testo, non quando viene eseguita.  L'esempio seguente
  118. dimostra il problema con un'espansione immediata:
  119.  
  120.     impostare VAR=prima
  121.     se "%VAR%" == "prima" (
  122.         impostare VAR=dopo
  123.         se "%VAR%" == "dopo" @echo In questo caso, ha funzionato
  124.     )
  125.  
  126. non mostrerebbe il messaggio poiché %VAR% nelle istruzioni BOTH IF statements
  127. viene sostituito alla lettura della prima istruzione IF, poiché include logicame
  128. nte
  129. il corpo di IF, che è un'istruzione composta.  Pertanto,
  130. IF all'interno dell'istruzione composta mette a confronto "prima" con
  131. "dopo" che non saranno mai uguali.  Analogamente, l'esempio seguente
  132. non funziona come dovrebbe:
  133.  
  134.     set LIST=
  135.     for %i in (*) do set LIST=%LIST% %i
  136.     echo %LIST%
  137.  
  138. in quanto NON crea un elenco di file nella directory corrente,
  139. ma invece imposta la variabile LIST all'ultimo file trovato.
  140. Nuovamente, questo avviene perché %LIST% viene espanso solo una volta alla
  141. lettura dell'istruzione FOR, e in quel momento la variabile LIST è vuota.
  142. Quindi il loop FOR che in realtà si sta eseguendo è:
  143.  
  144.     for %i in (*) do set LIST= %i
  145.  
  146. che mantiene l'impostazione di LIST all'ultimo file trovato.
  147.  
  148. L'espansione ritardata delle variabili di ambiente consente di utilizzare un car
  149. attere
  150. differente (punto esclamativo) perr espandere le variabili di ambiente al
  151. momento dell'esecuzione.  Se l'espansione ritardata delle variabili di ambiene è
  152. abilitata, gli esempi appena
  153. mostrati potrebbero essere riportati come segue per funzionare correttamente:
  154.  
  155.    set VAR=prima
  156.    if "%VAR%" == "prima" (
  157.        set VAR=dopo
  158.        if "!VAR!" == "dopo" @echo In questo caso, ha funzionato
  159.    )
  160.  
  161.    set LIST=
  162.    for %i in (*) do set LIST=!LIST! %i
  163.    echo %LIST%
  164.  
  165. Se le estensioni ai comandi sono abilitate, sono presenti molte variabili di
  166. ambiente dinamiche che è possibile espandere ma che non appaiono nell'elenco
  167. delle variabili mostrate da SET.  Questi valori sono
  168. calcolati dinamicamente ad ogni espansione delle variabili.
  169. Se l'utente definisce esplicitamente una variabile con uno di questi nomi,
  170. questa definizione sovrascrive la definizione dinamica descritta di seguito:
  171.  
  172. %CD% - espande alla stringa di directory corrente.
  173.  
  174. %DATE% - espande alla data corrente utilizzando lo stesso formato del comando DA
  175. TE.
  176.  
  177. %TIME% - espande all'ora corrente utilizzando lo stesso formato del comando TIME
  178. .
  179.  
  180. %RANDOM% - espande a un numero decimale scelto a caso tra 0 e 32767.
  181.  
  182. %ERRORLEVEL% - espande al valore ERRORLEVEL corrente
  183.  
  184. %CMDEXTVERSION% - espande al numero di versione delle estensioni del processore
  185. di comando corrente.
  186.  
  187. %CMDCMDLINE% - espande alla riga di comando iniziale che ha invocato il
  188.     processore di comando.


Ultima modifica effettuata da Shutdown il 30/12/2007 alle 18:59
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo