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.
<softv>

Pagina generata in 57 millisecondi

Utenti attivi: 14 nell'ultimo minuto, 33 negli ultimi cinque minuti, 55 negli ultimi 15 minuti