Mostra notizie nelle discussioni
Avatar
☺
Scritto da
avvelenato
un mezzo cavallo
il 2012-05-30 09:23:30.0 alle 2012-05-30 09:23:30.0
Trollate totali: 14239
comando dos da UCAS
posto che esista una cartella di nome 2315jr983n93bv9438vn382hgvbn238:
come mai non funziona questo comando?
for /f %i in (`dir /a:d 2315* /b`) do cd %i

cosa sbaglio?

Esegue il comando specificato per ogni file di un gruppo di file.

FOR %variabile IN (gruppo) DO comando [parametri del comando]

 %variabile  Indica un parametro sostituibile composto da una sola lettera.
 (gruppo)    Indica gruppo di uno o pi— file. Si possono usare caratteri jolly.
 comando     Specifica  il comando da eseguire per ciascun file.
 parametri del comando
             Indica i parametri o le opzioni del comando specificato.

Per usare FOR in un programma batch, utilizzare la sintassi %%variabile
anzich‚ %variabile. Le variabili possono essere differenziate utilizzando
lettere maiuscole e minuscole. Esempio: %i Š diversa 
da %I.

Se le estensioni ai comandi sono attivate Š possibile utilizzare le seguenti 
opzioni per il comando FOR:

FOR /D %variabile IN (gruppo) DO comando [parametri-comando]

    Se gruppo contiene dei caratteri jolly, vengono utilizzati 
    nomi di directory invece di nomi di file.

FOR /R [[unit…:]percorso] %variabile IN (gruppo) DO comando [parametri-comando]

    Nella struttura della directory, a partire da [unit…:]percorso, esegue
    l'istruzione FOR in ogni directory della struttura.  Se dopo /R non viene
    specificato alcun percorso la directory corrente Š assunta come iniziale.
    Se per il parametro gruppo si usa solo un carattere punto (.)saranno 
    elencate le directory nella struttura della directory specificata.

FOR /L %variabile IN (inizio,incremento,fine) DO comando [parametri-comando]

    Il gruppo Š la sequenza dei numeri da inizio a fine con differenza, tra un
    numero e il successivo, pari a incremento.
    Per esempio: (1,1,5) generer… 1 2 3 4 5 e (5,-1,1) generer… la sequenza 
    (5 4 3 2 1)

FOR /F ["opzioni"] %variabile IN (gruppofile) DO comando [parametri-comando]
FOR /F ["opzioni"] %variabile IN ("stringa") DO comando [parametri-comando]
FOR /F ["opzioni"] %variabile IN ("comando") DO comando [parametri-comando]

    o, se l'opzione usebackq Š presente:

FOR /F ["opzioni"] %variabile IN (gruppofile) DO comando [parametri-comando]
FOR /F ["opzioni"] %variabile IN ("stringa") DO comando [parametri-comando]
FOR /F ["opzioni"] %variabile IN ("comando") DO comando [parametri-comando]


    gruppofile contiene uno o pi— nomi di file. Ciascun file sar… aperto,
    letto ed elaborato prima di passare al file successivo in gruppofile.
    L'elaborazione consiste nel leggere il file, suddividerlo nelle singole
    righe di testo e scomporre ciascuna riga negli eventuali token che vi sono
    contenuti. Il comando all'interno del ciclo viene dunque richiamato
    utilizzando, come valori delle variabili, le stringhe dei token trovati. La
    modalit… predefinita prevede che /F passi il primo token delimitato da 
    spazi di ogni riga di ogni file. Le righe vuote sono scartate.
    La scomposizione in token pu• essere modificata specificando il parametro
    facoltativo "opzioni". Il parametro deve essere una stringa tra virgolette
    contenente una o pi— parole chiave che specifichino diversi parametri per
    la scomposizione in token. Le parole chiave sono:

        eol=c           - specifica il carattere che precede un commento alla
                          fine di una riga (solo uno)
        skip=n          - specifica il numero di righe all'inizio del file che
                          devono essere ignorate.
        delims=xxx      - specifica un insieme di delimitatori. Questo insieme
                          sostituisce i delimitatori predefiniti (spazi e 
                          tabulazioni).
        tokens=x,y,m-n  - specifica quali token appartenenti a una riga devono
                          essere passati al comando ad ogni iterazione.
                          L'opzione richiede l'utilizzo di nomi di variabili
                          aggiuntivi. L'espressione m-n indica i token
                          dall'm-esimo all'n-esimo. Se l'ultimo carattere,
                          nella stringa tokens=, Š un asterisco viene
                          allocata una variabile aggiuntiva cui sar…
                          assegnato il testo rimanente dopo l'assegnazione
                          dell'ultimo token.
        usebackq        - specifica che le nuove modalit… sono attive,
                         ove una stringa con apici inversi Š eseguita come
                          un comando e una stringa con apici singoli Š
                          una stringa di comando che consente l'utilizzo del
                          doppio apice per i nomi file in un
                          gruppofile.

    Esempi:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

    analizza ogni riga in miofile.txt, ignorando le righe che cominciano con
    punto e virgola, passando il secondo e terzo token da ciascuna riga al
    corpo di for, con i token delimitati da virgole e/o spazi.  Da notare il riferimento %i
    delle istruzioni del corpo di for di ottenere il secondo token, %j di ottenere il
    terzo token, e %k di ottenere i token rimanenti dopo il terzo. Per
    i nomi file che contengono spazi, Š necessario racchiudere i nomi file entro
    virgolette.  In questo caso, Š anche importante
    utilizzare l'opzione usebackq, altrimenti le virgolette saranno
    interpretate come la definizione di una stringa letterale da analizzare.

    %i Š esplicitamente dichiarato nell'istruzione for e %j e %k
    sono dichiarati per via implicita mediante l'opzione tokens=.  Ô possibile specificare
    fino a 26 token mediante la riga tokens=, a condizione che non causi un
    tentativo di dichiarare una variabile pi— alta della lettera "z" o "Z".
    Ricordare che le variabili FOR sono composte da una sola lettera, seguono la distinzione maiuscole/minuscole, sono globali
e   non Š possibile che ve ne siano pi— di 52 attivi contemporaneamente.

    Ô inoltre possibile utilizzare la logica di analisi FOR /F
    trasformando il gruppo di nomi file tra parentesi in una stringa
    utilizzando delle semplici virgolette.  La stringa sar… trattata come riga di input
    unica da un file, e quindi analizzata.

    Infine, Š possibile usare il comando FOR /F per analizzare l'output di un
    comando trasformando il gruppo di nomi file tra
    parentesi in una stringa con virgolette inverse.  La stringa sar… trattata come una riga di
    comando passata a un figlio CMD.EXE, l'output Š acquisito
    in memoria e analizzato come fosse un file.  Pertanto il seguente
    esempio:

      FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

    enumera i nomi di variabili nell'ambiente
    corrente.

Sono stati anche migliorati i riferimenti alla avariabile FOR.
YÔ ora possibile utilizzare la seguente sintassi:

    %~I         - espande %I rimuovendo le virgolette (")
    %~fI        - espande %I rendendolo un nome di percorso completo
    %~dI        - espande %I solo a lettera di unit…
    %~pI        - espande %I solo a percorso
    %~nI        - espande %I solo a nome file
    %~xI        - espande %I solo a estensione file
    %~sI        - il percorso espanso contiene solo nomi brevi
    %~aI        - espande %I ad attributi file
    %~tI        - espande %I a data/ora file
    %~zI        - espande %I a dimensioni file
    %~$PATH:I   - ricerca nelle directory elencate nella variabile di
                   ambiente PATH ed espande %I al
                   primo nome completo incontrato.
                   Se la variabile di ambiente non Š
                   definita o il file non Š trovato nella
                   ricerca, questo carattere di modifica espande
                   alla prima stringa vuota

I caratteri di modifica possono essere combinati insieme:

    %~dpI       - espande %I solo a lettera di unit… e percorso
    %~nxI       - espande %I solo a nome file e estensione
    %~fsI       - espande %I solo a nome di percorso completo con nomi brevi
    %~dp$PATH:i - ricerca nelle directory elencate nella variabile di
ambiente PATH                   per %I ed espande ai primi
                   lettera di unit… e percorso trovati.
    %~ftzaI     - espande %I a una DIR come riga di output

Negli esempi citati %I e PATH possono essere sostituiti da altri valori
validi.  La sintassi %~ viene terminata con un nome di variabile FOR valido.
Scegliendo nomi di variabile con caratteri maiuscoli come %I il testo diventa pi— leggibile ed
evita confusione con i caratteri di modifica, che non seguono la distinzione maiuscole/minuscole.

I pedoni possono muoversi solo in avanti.

Pagina generata in 43 millisecondi

Utenti attivi: 14 nell'ultimo minuto, 24 negli ultimi cinque minuti, 84 negli ultimi 15 minuti