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
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?
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.
-
comando dos da UCAS @ 2012-05-30 09:23:30.0 di avvelenato
-
■ @ 2012-06-04 08:51:59.0 di avvelenato
-