2016-08-09 74 views
1

ich die folgende Batchdatei geschrieben alle Laufwerke suchen meine Dateien zu finden, aber ich "%d:\ was unexpected at this time." Fehler, Mein Code ist:zu diesem Zeitpunkt unerwartet für die Suche alle Laufwerke

@echo off & setLocal EnableDELAYedeXpansion 
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
    if exist %%d: (
    For /R %%d:\ %%G IN (*.zip) do Echo %%G >> zipres.txt 
)) 

Was ist das Problem meines Codes ist? Vielen Dank im Voraus

+0

Das Kernproblem ist, dass 'for/R' das angegebene Root-Verzeichnis in einem frühen Stadium auflöst * bevor * irgendwelche' for' Variablen oder verzögerte expandierte Variablen aufgelöst werden; In deinem Code ist '%% d' noch nicht in' c: ',' ​​d: 'usw. aufgelöst, wenn' for/R' versucht, sein Wurzelverzeichnis zu setzen, deshalb erhältst du diesen Fehler ... – aschipfl

Antwort

0

Ich glaube nicht, das für die Lage sein, wird es wie that.May Sie können mit zu analysieren versuchen:

@echo off 
setlocal enableDelayedExpansion 
set loc=%cd% 
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
    if exist %%d: (
    pushd %%d: 
    For /R %%G IN (*.zip) do Echo %%G >>"%loc%\zipres.txt" 
    popd 
) 
) 

oder mit Unterprogramm.