schottenrock
Goto Top

BATCH: Minuszeichen in set-Befehl

Guten Morgen,

ich komme gerade nicht weiter und es wit wohl nur eine Kleinigkeit, aber ich steh gerade auf dem Schlauch:

Ich habe ein Datum zerlegt und will es wieder rückwärts zusammenbauen. Das funktioniert auch mit echo, aber wenn ich es in eine Variable schreiben will, danb kommt entweder nix oder wenn ich spasseshalber set/a angebe, dann rechnet er

Also, hier ein Beispiel:

@echo off

rem Datum zerlegen:
set dd=%date:~0,2%
set mm=%date:~3,2%
set yyyy=%date:~6,4%

rem Testanzeige
echo Datum: %yyyy%-%mm%-%dd%

rem Datum in Variable YMD schreiben
set YMD = %yyyy%-%mm%-%dd%

rem Anzege von Variable YMD ist leer, es kommt nur Echo ist eingeschaltet
echo %YMD%
pause
exit
:EOF 

Ich habe schon viel gegoogelt, Forum durchsucht, aber hab jetzt eine halbe Stunde lang nix wirkliches zu Minuszeichen gefunden. Eher das Gegenteil, man findet viel, wie man mit set /a rechnen kann, aber nicht, wie man NICHT rechnen kann ...

Bereits im Vorfeld besten Dank an alle, die mir zu dieser frühen Stunde helfen können.

Content-ID: 311409

Url: https://administrator.de/contentid/311409

Ausgedruckt am: 08.11.2024 um 07:11 Uhr

narthan
narthan 31.07.2016 aktualisiert um 09:47:42 Uhr
Goto Top
Hallo Schottenrock,

benutze statt deiner Zeile 12 folgendes:

set "YMD=%yyyy%-%mm%-%dd%"  

Folgendes würde auch funktionieren:

set YMD=%yyyy%^-%mm%^-%dd%

Also entweder den gesamten Befehl in Anführungszeichen setzen, oder das Minus escapen.
Wenn damit dein Problem gelöst ist, bitte die Frage schließen face-smile

Gruß,
narthan
129813
Lösung 129813 31.07.2016 um 10:07:06 Uhr
Goto Top
Hi.
the dash is no problem if you don't use set /a. Your error above is the space between the name of the variable and the equal sign (=). This is not allowed.

Regards
Schottenrock
Schottenrock 06.08.2016 um 22:21:22 Uhr
Goto Top
Ja, die Leerzeichen waren das Problem. Vielen Dank für die Hilfe.
Yes, the two spaces left and right of the equal sign have been the problem. Thanks for your help!