Windows nimmt variable falsch an?

2 Antworten

keine Ahnung was Folderbrowser.exe ist oder zurückgibt

allerdings hast Du die Quotes falsch gesetzt:

demo.cmd

@echo off
set "WorkDir=C:\blubb"
 rem  mal zur Demo
echo falsch : "%workDir%"\src\folderbrowse\folderbrowse.exe
echo richtig: "%workDir%\src\folderbrowse\folderbrowse.exe"

for /f "tokens=*" %%a in ('"%workDir%\src\folderbrowse\folderbrowse.exe" "Select the directory where the image gets mounted:"') do (
    set "MountDir=%%~a"
) 
pause

Verwende nie "delims=" (es sei denn es ist zwingend nötig). Dies gibt auch evtl führende Leerzeichen zurück ,welche einen Pfad unbrauchbar machen.

Allerdings erschließt sich mir nicht, weshalb Du für einen Folderdialog eine exe verwendest ? Du hast alles an Bord😏

demo.cmd

@echo off
chcp 65001 >nul


set "BaseFolder=%UserProfile%\Desktop"   &rem diese  Zeile  legt  nur einen eventiellen StartOrdner für den Dialog  fest und kann weg
 rem erzeuge Dialogscript:
echo objFolder = new ActiveXObject('Shell.Application').BrowseForFolder(0, 'Select the directory where the image gets mounted:', 1, '%BaseFolder%');if (objFolder) {WSH.Echo(objFolder.Self.path)} >"%temp%\getFolder.js"

for /f "tokens=*" %%a in ('cscript /nologo "%temp%\getFolder.js"') do (
    set "MountDir=%%~a"
) 
echo Gewählter Ordner : "%MountDir%"
pause

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
thewindev 
Fragesteller
 17.03.2023, 00:43

Also ehhhh, da Folderbrowse nehm ich halt da es für mich das einfachste war was ich da hatte und weil ich da schon ein script bsp hatte. 😅

0
vielleicht 
""Select
und
""MountDir=%%A"
Woher ich das weiß:eigene Erfahrung
thewindev 
Fragesteller
 13.03.2023, 17:54

Hat leider nicht geholfen, bekomme noch immer den Fehler 'C:\[...]\WIM ' is not recognised as... an den Kopf geschmissen :(

1
thewindev 
Fragesteller
 13.03.2023, 18:01
@geri3d

Powershell wird nicht viel nützen da ich die Batch Datei Später Jemanden zu C# umwandeln lasse. Deswegen würd ich das als erstes gern in Batch machen.

1
thewindev 
Fragesteller
 13.03.2023, 18:15
@NackterGerd

Der Sollte aber von Windows mitgenommen werden wenn der Pfad in Anführungszeichen steht.

1
geri3d  13.03.2023, 23:59
@thewindev

Notfalls verkürzte notation verwenden wenn das bei Batch möglich ist, schreib es als Consolenprogramm in C# das ist 100x einfacher als veralteten Schrott zum laufen zu bringen nur weil sich der Pfad geändert hat. Ich bevorzuge ja als alter Hase Visual Basic der 1. Stunde zum *.exe machen und habe auch die Lizenz dafür erhalten.

0
Erzesel  14.03.2023, 09:24
@NackterGerd

falsches Quoting im Pfad

"%workDir%"\src\folderbrowse\folderbrowse.exe
"%workDir%\src\folderbrowse\folderbrowse.exe"
1