MenüHomeBlogMagic

Batch Anführungsstriche von Parametern/Variablen entfernen

Nachdem ich immer wieder darüber falle dass Argumente und Variablen mit einem Leerzeichen bei einer Batch automatisch mit " versehen werden, habe ich mir angewöhnt die Argumente in Variablen abzulegen und die Anführungsstriche zu entfernen.

Bei Parametern geht das ganz einfach

SET ARG1=%~1

Bei Variablen wendet man einen kleinen Trick an um den ersten und den letzten " zu entfernen.
Man verwendet einen Marker, in diesem Fall ____, welcher in der Variable "definitiv" nicht vorkommt, und entfernt dann die " samt Marker, durch einen replace, ohne andere Quotes innerhalb der Variable zu verändern.

SET VAR=____%VAR%____
SET VAR=%VAR:"____=%
SET VAR=%VAR:____"=%

Beispiel

Hier mal ein kleine Beispiel wie mit den Variablen gearbeitet werden kann.

@echo off

SET ARG1=%~1
SET ARG2=%~2
SET VAR="Hallo "du" da"

SET VAR=____%VAR%____
SET VAR=%VAR:"____=%
SET VAR=%VAR:____"=%

echo %VAR%
echo %ARG1%
echo %ARG2%

Ausgeführt in einer Batch (Test.bat) erhält man folgenden Output.

PS ...> .\Test.bat "Var 1" Var2
Hallo "du" da
Var 1
Var2
Permalink: https://adirmeier.de/Blog/ID_343
Tags: Blog, Batch, cmd, Windowsvon am 2020-10-22