kriait
Goto Top

Problem mit "username" abfrage in Batch Dateien

Hallo,
ich habe eine Batch-Datei erstellt in der ein Ordner auf dem Desktop erstellt werden soll. Der Batch soll auf unterschiedlichen Maschinen laufen und mit unterschiedlichen Usern, daher auch die %username% Abfrage.

Nun zum Problem, einer der User hat einen Namen mit Leerzeichen (Hans Wurst) bei der Abfrage und dem erstellen der Ordner ergibt sich dann da Problem, dass der Batch nach hans aufhort und somit natürlich nichts vernünftiges erstellt!

hier mein aktueller Code:

mkdir C:\Users\%username%\Desktop\%VAR1%-%cdate%
mkdir C:\Users\%username%\Desktop\%VAR1%-%cdate%\Parts

Danke für eure Hilfe

Content-ID: 306534

Url: https://administrator.de/forum/problem-mit-username-abfrage-in-batch-dateien-306534.html

Ausgedruckt am: 14.04.2025 um 02:04 Uhr

129413
Lösung 129413 08.06.2016 aktualisiert um 13:25:49 Uhr
Goto Top
Dafür gibt's "Anführungszeichen" ... und das "C:\Users\%username%" würde ich gleich durch %USERPROFILE% ersetzen.
Was das deine zwei Zeilen auf das hier reduziert:
mkdir "%USERPROFILE%\Desktop\%VAR1%-%cdate%\Parts"
Gruß sykbird
agowa338
Lösung agowa338 09.06.2016 um 01:49:20 Uhr
Goto Top
Das mit %USERPROFILE% hat noch zusätzlich den Vorteil, dass es selbst bei Server gespeicherten Profilen oder bei Umgeleiteten Speicherorten Funktioniert, wo hingegen "C:\Users\%username%" fehlschlagen würde.
KriAIT
KriAIT 13.06.2016 aktualisiert um 10:38:53 Uhr
Goto Top
Hallo,
hat leider nicht funktioniert, ich kopiere mal den gesamten Code rein vielleicht hab ich ja noch nen anderen Fehler!

Danke schon mal für die Mühe!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
@echo off

REM                 ORDNER in den gespeichert wird
SET VAR1=B2000120-Rechner_24_Gen2

REM                 BAUGRUPPE
SET VAR2=B2000120*

REM                 Parts
SET VAR3=E2000002*
SET VAR4=E2000025*
SET VAR5=E2000026*
SET VAR6=E2000091*
SET VAR7=
SET VAR8=E2000110*
SET VAR9=E2000111*
SET VAR10=E2000112*
SET VAR11=
SET VAR12=E2000114*
SET VAR13=E2000121*
SET VAR14=E2000125*
SET VAR15=


REM             - Programm zur Ausführung starten! -
call ZZZ_Programm.bat

exit


@echo off
REM                                                 Erstellt durch KriA - Andreas Kristen
REM      -Datum Rückwärts erzeugen
set cdate=%date:~-4%_%date:~-7,2%_%date:~-10,2%

REM      -VORBEREITEN-

SET VAR999="%userprofile%\Desktop\%VAR1%-%cdate%"  

mkdir "%VAR999%"  
mkdir "%VAR999%\Parts"  

REM      -AUSFÜHREN-

copy "DB_BGR\%VAR2%*.*" "%VAR999%\"  

copy "DB_parts\%VAR3%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR4%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR5%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR6%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR7%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR8%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR9%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR10%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR11%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR12%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR13%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR14%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR15%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR16%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR17%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR18%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR19%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR20%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR21%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR22%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR23%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR24%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR25%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR26%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR27%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR28%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR29%.*" "%VAR999%\Parts\"  
copy "DB_parts\%VAR30%.*" "%VAR999%\Parts\"  

REM      -Ordner öffen-

start "" "%VAR999%"  

pause
exit
[Edit Biber] Codetags. [/Edit]
129413
Lösung 129413 13.06.2016 aktualisiert um 10:09:31 Uhr
Goto Top
Weil du die Anführungszeichen an der falschen stelle setzt deswegen!
1
set "VAR999=%userprofile%\Desktop\%VAR1%-%cdate%"  
Bei dir landen sonst die Anführungszeichen mit in der Variablen und weiter unten machst du dann nochmal welche Drum deswegen funktioniert das nicht. Wenn du es wie oben setzt werden Leerzeichen berücksichtigt und es landen keine Anführungszeichen in der Variablen.
KriAIT
KriAIT 15.06.2016 um 13:13:36 Uhr
Goto Top
Jetzt tuts!! VIELEN Dank für die Hilfe ich bin leider nur sehr selten an solchen Programmen dran und wenn dann auch nur kleine Hürden kommen wirds schon kniffelig!

Danke nochmal und Grüße!