2016-06-07 8 views
0

Also ich möchte alle Dateien in einem Verzeichnis mit einer Variablen in ihm aufrufen und später die Variable echo. Das einzige Problem, das ich habe, ist, dass es die Variable nicht aussprechen wird. Es sagt nur ECHO OFF.Meine for-Schleife zeigt keine Variable in einer anderen Datei

Hier ist mein aktueller Code.

// THIS IS MY FOR LOOP. 
@echo off 

:Message 
for %%i in (Soemthing\*.bat) do (
    call %%i 
    echo %Message% 
) 

pause 
exit 

// THIS IS THE FILE I WANT IT TO CALL. 
@echo off 

set %Message%=Some message here. 
+2

Sie benötigen [verzögerte Expansion] (http://stackoverflow.com/a/30284028/2152082). Ihr 'set' Befehl ist falsch:' set' Nachricht = Einige Nachricht hier "' – Stephan

+0

Nein, funktioniert nicht. Immer noch sagt ECHO ist aus. –

+0

@Stephan Es funktioniert nicht. –

Antwort

1
> type a.bat 
@echo off 
setlocal enabledelayedexpansion 
:Message 
for %%i in (b.bat) do (
    call %%i 
    echo !Message! 
) 
pause 

> type b.bat 
set "Message=Some message here." 

> a.bat 

Some message here. 
Drücken Sie eine beliebige Taste . . . 

> 
+0

Ich will nicht, dass es b.bat aufruft, ich möchte stattdessen (* .bat), damit es jede Datei aufruft. –

+0

Dies ist ein Beispiel genannt. Um Ihnen zu zeigen, wie es funktioniert. Natürlich kannst du 'b.bat' durch' Soemthing \ *. Bat' ersetzen und es würde jede einzelne bat-Datei in diesem Ordner aufrufen. – Stephan

Verwandte Themen