yakazaa
Goto Top

Fehler im Skript - Ordner überprüfen

Tag zusammen...

folgende Zeilen machen mir in sofer Sorgen, dass der JA Bereich niemals durchlaufen wird...

@echo ON
SET PFAD="D:\_TEST für Thomas\Test"

IF EXIST %PFAD%\nul GOTO JA
GOTO NEIN

:JA
ECHO Pfad existiert !
GOTO WEITER

:NEIN
ECHO Pfad existiert nicht !
ECHO %PFAD% wird erstellt...
MD %PFAD%

:WEITER
pause

Der Pfad wird hinterher vom User über eine SET /P PFAD= Abfrage vom User selbst eingebunden.
Die Anführungszeichen sind daher leider zwingend notwendig, da durchaus Leertasten in den Pfadangaben zu erwarten sind - User eben ;)
Ich vermute allerdings, dass sie ebenso wie sie notwendig sind, auch der Quell allen Übels sind.
Jemand 'ne Idee ?

Gruß 'nik

Content-ID: 128208

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

Snowman25
Snowman25 29.10.2009 um 11:26:18 Uhr
Goto Top
IF EXIST "%PFAD%\nul" GOTO JA  
probiers mal damit
bastla
bastla 29.10.2009 um 12:58:41 Uhr
Goto Top
... und ergänzend
SET "PFAD=D:\_TEST für Thomas\Test"
Da Du in %PFAD% daher keine umgebenden Anführungszeichen erwartest (erwarten kannst - User eben face-wink), musst Du diese in weiterer Folge dann konsequent selbst setzen ...

Grüße
bastla
Snowman25
Snowman25 29.10.2009 um 13:05:14 Uhr
Goto Top
hat er doch schon...
und per /P-switch gesetzte Variablen verinnerlichen auch mit leerzeichen getrennte wörter face-wink
sprich:
> set /P test=Bitte testsatz eingeben!
Dies ist ein Test
> Echo %test%
Dies ist ein Test
DetlefS
DetlefS 29.10.2009 um 13:17:53 Uhr
Goto Top
Hi, probier mal

@echo off
@cls
SET PFAD="D:\_fuer Thomas\Test"

echo %Pfad%


IF EXIST %PFAD%\ GOTO JA
GOTO NEIN

:JA
ECHO Pfad existiert: %PFAD% !
GOTO WEITER

:NEIN
ECHO Pfad existiert nicht !
ECHO %PFAD% wird erstellt...
MD %PFAD%

:WEITER
pause


Bei mir geht es !!
Snowman25
Snowman25 29.10.2009 um 13:26:06 Uhr
Goto Top
wieviele wollen jetzt noch eine minimalst veränderte Version des gleichen Scripts abliefern, das eigentlich jeder hier Problemlos schreiben könnte??
bastla
bastla 29.10.2009 um 14:16:08 Uhr
Goto Top
@Snowman25
hat er doch schon...
Ich weiß ja nicht, worauf Du Dich damit beziehst - gemeint war, dass dann zB auch in der Zeile
MD %PFAD%
die Anführungszeichen benötigt werden.
und per /P-switch gesetzte Variablen verinnerlichen auch mit leerzeichen getrennte wörter face-wink
Eben - deshalb der Hinweis, bei Verwendung der so erstellten Variablen die Anführungszeichen zu setzen ...

Grüße
bastla
Snowman25
Snowman25 29.10.2009 um 14:29:59 Uhr
Goto Top
stimmt, das MD hatte ich übersehen...
Ansonsten bekommt er noch so viele Ordner wie verschiedene Wörter enthalten sind face-big-smile
yakazaa
yakazaa 29.10.2009 um 14:33:46 Uhr
Goto Top
@DetlefS:
Hi, leider ist das Umschreiben von Umlauten nicht wirklich das was ich suche...

@Snowman25:
Ergebnis:

Bitte Pfad eingeben:D:\_TEST\Test für Thomas\
Pfad existiert nicht !
D:\_TEST\Test für Thomas\ wird erstellt...
A subdirectory or file D:\_TEST\Test für Thomas\ already exists.
Press any key to continue . . .
Snowman25
Snowman25 29.10.2009 um 14:40:09 Uhr
Goto Top
deshalb meinte bastla ja noch, dass du auch im MD-Befehl Anführungszeichen setzen musst
so bekommst du jetzt 3 Ordner:
  1. Test
  2. für (möglicherweise ist das ü entstellt)
  3. Thomas

€dit:
Gerade bemerkt, dass If Exist nul zusammen mit Anführungsstrichen nicht mag. Allerdings reicht es doch, wenn der Ordnername geprüft wird. lass das \nul einfach weg
yakazaa
yakazaa 29.10.2009 um 15:05:43 Uhr
Goto Top
Skript sieht soweit wie folgt aus:

@echo OFF
SET /P PFAD=Bitte Pfad eingeben:

IF EXIST %PFAD%\nul GOTO JA
GOTO NEIN

:JA
ECHO Pfad existiert !
GOTO WEITER

:NEIN
ECHO Pfad existiert nicht !
ECHO %PFAD% wird erstellt...
MD "%PFAD%"

:WEITER
pause

@€dit:
soweit ich weiß prüft
IF EXIST aber nur auf Dateien, wie kann ich den Namen sonst abfragen ?!
Snowman25
Snowman25 29.10.2009 um 15:26:49 Uhr
Goto Top
ich habs ausprobiert, der nimmt auch ordnernamen
TsukiSan
TsukiSan 29.10.2009 um 15:27:05 Uhr
Goto Top
wie wär's damit
@ECHO OFF
SET /P PFAD=Bitte Pfad eingeben:

IF EXIST %PFAD% 2>nul GOTO JA
GOTO NEIN

:JA
ECHO Pfad existiert ! 
GOTO WEITER

:NEIN
ECHO Pfad existiert nicht !
ECHO %PFAD% wird erstellt...
MD "%PFAD%"  

:WEITER
pause
?

Gruß
Tsuki
Snowman25
Snowman25 29.10.2009 um 15:34:26 Uhr
Goto Top
wozu fehlermeldungen ins nirvana leiten?
Aus den Augen aus dem sinn?
TsukiSan
TsukiSan 29.10.2009 um 15:53:04 Uhr
Goto Top
aus meinen Augen und in yakazaas Sinn.
Wir geben ihm doch hier Gedankenstützen, oder?
bastla
bastla 29.10.2009 um 16:09:47 Uhr
Goto Top
ich habs ausprobiert, der nimmt auch ordnernamen
... kann aber nicht zwischen Datei und Ordner unterscheiden; Alternative:
pushd "%PFAD%" 2>nul && (popd & goto :JA)
Grüße
bastla