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/forum/fehler-im-skript-ordner-ueberpruefen-128208.html

Printed on: January 14, 2025 at 13:01 o'clock

Snowman25
Snowman25 Oct 29, 2009 at 10:26:18 (UTC)
Goto Top
IF EXIST "%PFAD%\nul" GOTO JA  
probiers mal damit
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
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
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 !!
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??
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
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
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 . . .
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
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 ?!
Snowman25
Snowman25 Oct 29, 2009 at 14:26:49 (UTC)
Goto Top
ich habs ausprobiert, der nimmt auch ordnernamen
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
Snowman25
Snowman25 Oct 29, 2009 at 14:34:26 (UTC)
Goto Top
wozu fehlermeldungen ins nirvana leiten?
Aus den Augen aus dem sinn?
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?
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