Batch-verzögerte Erweiterung nicht funktioniert

Ok, ich bin verrückt und ich weiß nicht, was anderes zu tun, ich habe versucht, verschiedene Dinge und nichts funktioniert.

Blick auf diese Beispielcode (test.cmd):

setlocal enabledelayedexpansion enableextensions
set VAR=before
if "%VAR%" == "before" (
    set VAR=after;
    if "%VAR%" == "after" @echo If you see this, it worked
)

Dies ist die generierte Ausgabe:

D:\>ver

Microsoft Windows [Version 6.1.7600]

D:\>test.cmd

D:\>setlocal enabledelayedexpansion enableextensions

D:\>set VAR=before

D:\>if "before" == "before" (
set VAR=after;
 if "before" == "after"
)

D:\>

Mache ich etwas falsch?

Dies ist nur ein test, den code brauche ich verwendet, Variablen zu und braucht verzögerte Erweiterung, aber es ist dieser einfache test nicht funktioniert, die andere nicht funktionieren (die ich ausprobiert habe, landete ich mit einem einfachen Beispiel um zu testen, ob es funktioniert).

EDIT: Neuen code ein und Ausgabe:

test.cmd:

@echo off
setlocal enabledelayedexpansion enableextensions
set VAR=before
if "%VAR%" == "before" (
   set VAR=after;
   if "!VAR!" == "after" (
      echo It worked.
   ) else (
      echo It didn't work.
   )
)

Ausgabe:

D:\>test.cmd
It didn't work.

D:\>
  • Verlieren Sie das Semikolon in der Zeile set VAR=nach; und es sollte funktionieren
  • Das ist es! Ein Semikolon... meine Güte, was für ein Anfänger ich bin 🙂
InformationsquelleAutor Richard | 2009-11-19
Schreibe einen Kommentar