CMD For-Schleife nicht halten Sie set /a Wert
Nicht wissen, wie dies zu erklären naja, also hier ist der code
@echo off
set test=0
for /f %%a in (textfile.txt) do (
rem loops five times(5 lines in textfile.txt)
set /a test=test+1
rem Adds 1 to Test
echo %%a
rem Echo's correct line in file
echo %test%
rem Echo's whatever X was before the loop
)
echo %test%
rem Displays the correct value of X
pause
dies ist nur ein Beispiel, wo ich finde das problem, txtfile.txt hat 5 Linien, also die for-Schleife geht 5 mal, jedes mal, test, erhält +1 zu, und der /die eine zeigt den richtigen Wert von X, aber das Letzte echo auf die for-Schleife zeigt 0, das ist, was test ist festgelegt, bevor die Schleife.
Den Wert von test ist nicht zu ändern, bis die Schleife fertig ist... gibt es irgendeine Möglichkeit dieses Problem zu beheben?
Ist hier, was möchte ich erreichen, wie kann es einen einfacheren Weg: ich will laufen eine for-Schleife, die findstr alle rtf ' s in einer Reihe von sub-Ordner, und kopiert Sie alle zu einem ganzen Verzeichnis mit einem neuen Namen 1.rtf,2.rtf,3.rtf, etc. Der Grund, warum ich brauchen, um Sie umzubenennen auf den transfer ist, dass Sie alle den gleichen Namen haben.
InformationsquelleAutor | 2009-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lucero Recht ist.
Beispiel-code:
%%a
Wert einer for-Schleife-variable? Kann Sie nicht einfach erreichen, es für StundenInformationsquelleAutor Cheeso
Verwenden Sie ggf. die verzögerte umgebungsvariablenerweiterung. Siehe CMD /? für weitere Hilfe zu diesem:
...
InformationsquelleAutor Lucero
Wollte nur hinzufügen, dass der Schlüssel zur Nutzung verzögerte Erweiterung ist die Referenzierung der Variablen, die mit den !var! syntax versus %var%. Am besten ich kann sagen, bei XP verzögerte Erweiterung ist standardmäßig aktiviert, Sie müssen nur Referenz die var verwenden !. Dass meine Feste Schleife. Gefunden in der Hilfe erwähnt, die von den anderen Postern:
Ermöglichen die verzögerte Erweiterung von Umgebungsvariablen mit ! als die
Trennzeichen. Zum Beispiel /V:ON " ermöglichen würde !var! erweitern Sie die
die variable var zum Zeitpunkt der Ausführung. Die var-syntax erweitert Variablen
bei der Eingabe von Uhrzeit, das ist eine ganz andere Sache, wenn innerhalb einer FÜR
loop.
Habe ich übersehen !! bit zuerst.
InformationsquelleAutor Kyle