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-Key: 128208

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

Printed on: April 24, 2024 at 10:04 o'clock

Member: Snowman25
Snowman25 Oct 29, 2009 at 10:26:18 (UTC)
Goto Top
IF EXIST "%PFAD%\nul" GOTO JA  
probiers mal damit
Member: bastla
bastla Oct 29, 2009 at 11:58:41 (UTC)
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
Member: Snowman25
Snowman25 Oct 29, 2009 at 12:05:14 (UTC)
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
Member: DetlefS
DetlefS Oct 29, 2009 at 12:17:53 (UTC)
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 !!
Member: Snowman25
Snowman25 Oct 29, 2009 at 12:26:06 (UTC)
Goto Top
wieviele wollen jetzt noch eine minimalst veränderte Version des gleichen Scripts abliefern, das eigentlich jeder hier Problemlos schreiben könnte??
Member: bastla
bastla Oct 29, 2009 at 13:16:08 (UTC)
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
Member: Snowman25
Snowman25 Oct 29, 2009 at 13:29:59 (UTC)
Goto Top
stimmt, das MD hatte ich übersehen...
Ansonsten bekommt er noch so viele Ordner wie verschiedene Wörter enthalten sind face-big-smile
Member: yakazaa
yakazaa Oct 29, 2009 at 13:33:46 (UTC)
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 . . .
Member: Snowman25
Snowman25 Oct 29, 2009 at 13:40:09 (UTC)
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
Member: yakazaa
yakazaa Oct 29, 2009 at 14:05:43 (UTC)
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 ?!
Member: Snowman25
Snowman25 Oct 29, 2009 at 14:26:49 (UTC)
Goto Top
ich habs ausprobiert, der nimmt auch ordnernamen
Member: TsukiSan
TsukiSan Oct 29, 2009 at 14:27:05 (UTC)
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
Member: Snowman25
Snowman25 Oct 29, 2009 at 14:34:26 (UTC)
Goto Top
wozu fehlermeldungen ins nirvana leiten?
Aus den Augen aus dem sinn?
Member: TsukiSan
TsukiSan Oct 29, 2009 at 14:53:04 (UTC)
Goto Top
aus meinen Augen und in yakazaas Sinn.
Wir geben ihm doch hier Gedankenstützen, oder?
Member: bastla
bastla Oct 29, 2009 at 15:09:47 (UTC)
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