Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Überprüfen ob Batch im korrekten Ordner liegt

Mitglied: Isias83

Isias83 (Level 1) - Jetzt verbinden

17.08.2007, aktualisiert 17:51 Uhr, 5149 Aufrufe, 7 Kommentare

Hallo,

ich würde gerne nochmal eure Hilfe in Anspruch nehmen, zwar hat die Suche doch einiges ausgeworfen, aber so ganz habe ich nicht gefunden was ich wissen wollte. Ich möchte das die .bat von sich aus überprüft, ob sie im korrekten Verzeichnis ausgeführt wird. Dafür dachte ich, würde es ausreichen wenn ich das ganze mit if exist angehe. Das Problem ist, das hierbei anscheinend die kompeltte Platte als Referenz dient, ob Verzeichnissname1 existiert, dementsprechend ist das Ergebniß natürlich immer positiv.

Ich möchte aber das die Batch nur folgendes prüft:

Ist das Verzeichnis in dem ich liege und ausgeführt werde das Verzeichnis mit dem Namen Verzeichnisname1
Wenn ja, gut, Batch soll durchlaufen
Wenn nein, schlecht, Batch soll ausgeben das sie nicht im korrekten Verzeichnis Verzeichnissname1 liegt sondern sonstwo

Einen absoluten Pfad kann ich nicht verwenden, da die .bat auf verschiedenen Rechner ausgeführt werden wird. Das ganze muß also relativ zum Scriptdir gehalten sein.

Hier der Codeschnipsel:
01.
@echo off 
02.
if exist Verzeichnisname1\nul <goto Verzeichnisexistiert> Else echo Die .bat liegt nicht im korrekten Verzeichnis Verzeichnisname1 sondern unter %cd%! 
03.
 
04.
:Verzeichnisexistiert 
05.
echo Das Verzeichnis wurde gefunden! 
06.
pause
Danke das ihr euch das ganze mal angesehen habt.
Mitglied: Iwan
17.08.2007 um 08:13 Uhr
01.
set VerzeichnisR=E:\_private\Scripts\Test 
02.
set VerzeichnisC=%CD% 
03.
if %VerzeichnisC% == %VerzeichnisR% echo Fehler 
04.
if %VerzeichnisC% = %VerzeichnisR% goto Verzeichnisexistiert 
05.
pause 
06.
 
07.
:Verzeichnisexistiert 
08.
echo nun kanns losgehen 
09.
pause 
10.
 
11.
exit
ich hatte gehofft, das es so funktioniert, aber irgendwo hab ich wohl einen Fehler drin, weil sich das CMD sofort wieder schliesst
Bitte warten ..
Mitglied: bastla
17.08.2007 um 09:43 Uhr
Hallo Isisas83!

Einen absoluten Pfad kann ich nicht verwenden, da die .bat auf verschiedenen Rechner ausgeführt werden wird. Das ganze muß also relativ zum Scriptdir gehalten sein.
Du könntest also eigentlich nur das Vorhandensein von "Verzeichnisname1" innerhalb des aktuellen Pfades überprüfen, also:
01.
@echo off 
02.
echo %cd%|find "Scriptdir\Verzeichnisname1">nul && goto :Verzeichnisexistiert  
03.
echo Die .bat liegt nicht im korrekten Verzeichnis Verzeichnisname1 sondern unter %cd% 
04.
goto :eof 
05.
:Verzeichnisexistiert 
06.
echo Das Verzeichnis wurde gefunden!
Grüße
bastla

P.S.: Wo die Batchdatei selbst "liegt", kannst Du durch Auswertung von %0 feststellen, für den Pfad also: echo %~p0
Bitte warten ..
Mitglied: TuXHunt3R
17.08.2007 um 09:45 Uhr
Versuchs mal so (nicht getestet):

01.
 
02.
set VerzeichnisR=E:\_private\Scripts\Test 
03.
set VerzeichnisC=%CD% 
04.
 
05.
if %VerzeichnisC% = %VerzeichnisR% ( 
06.
goto Verzeichnisexistiert 
07.
) else ( 
08.
echo Fehler 
09.
pause 
10.
11.
 
12.
:Verzeichnisexistiert 
13.
echo nun kanns losgehen 
14.
pause 
15.
 
16.
exit 
17.
 
18.
 
Bitte warten ..
Mitglied: Isias83
17.08.2007 um 15:55 Uhr
Erstmal danke für eure Antworten. Die oberen 2 Ansätze bringen mich leider nicht weiter, da ich den Pfad variabel halten will, damit die Abfragen auf verschiedenen Systemen funktioniert.

Bei deiner Lösung Bastla erkennt er zwar ob der Verzeichnisname1 stimmt und springt korrekt weiter, aber wenn der Verzeichnisname1 nicht stimmt, gibt er die Echo Meldung leider nicht aus.

Da mich das ohnehin interessieren würde, kann ich nicht

1. den Pfad in einer Variablen speichern via
01.
set Verzeichnispfad=%CD%
2. dann die Variable Verzeichnispfad aufrufen und alles löschen bis auf den letzten Eintrag (der in meinem Fall ja dann der Ordner wäre in dem die Batch liegt)
3. und dann ganz einfach mit einer IF Abfrage feststellen ob der letze Wert = Verzeichnisname1 ist
Bitte warten ..
Mitglied: bastla
17.08.2007 um 16:18 Uhr
Hallo Isias83!

... gibt er die Echo Meldung leider nicht aus.
ist nicht nachvollziehbar, aber egal - dann eben so:
01.
for /f "delims=" %%i in ('echo %cd%') do set "Verzeichnispfad=%%~ni" 
02.
if "%Verzeichnispfad%"=="Verzeichnisname1" goto :Verzeichnisexistiert 
03.
...
Grüße
bastla
Bitte warten ..
Mitglied: Isias83
17.08.2007 um 17:34 Uhr
So, jetzt klappts, danke bastla für die erneute Schützenhilfe. Ich habs noch etwas erweitert wie folgt:
01.
@echo off 
02.
for /f "delims=" %%i in ('echo %cd%') do set "Verzeichnispfad=%%~ni" 
03.
if "%Verzeichnispfad%"=="maps" goto Verzeichnisstimmt 
04.
if not "%Verzeichnispfad%"=="maps" goto Verzeichnisstimmtnicht 
05.
 
06.
:Verzeichnisstimmt 
07.
echo Das Batch liegt im korrekten Verzeichnis maps 
08.
pause 
09.
exit 
10.
 
11.
:Verzeichnisstimmtnicht 
12.
echo Das Batch liegt nicht im korrekten Verzeichnis maps, sondern unter %cd% 
13.
pause 
14.
exit
Jetzt klappt alles wie es sein sollte, danke dir! Beitrag als gelöst markiert.
Bitte warten ..
Mitglied: bastla
17.08.2007 um 17:51 Uhr
Hallo Isias83!

Deine Erweiterungen finde ich verbesserungswürdig ...

Aus
01.
if "%Verzeichnispfad%"=="maps" goto Verzeichnisstimmt
folgt: Wenn nicht "goto" ausgeführt wurde, ist dadurch ohnehin schon sicher, dass %Verzeichnispfad% nicht gleich "maps" ist, daher ist die zweite Abfrage überflüssig und es könnte gleich der Fehlertext ausgegeben werden.

Vielleicht als abschließende Version daher:
01.
@echo off 
02.
for /f "delims=" %%i in ('echo %cd%') do set "Verzeichnispfad=%%~ni" 
03.
if "%Verzeichnispfad%"=="maps" goto Verzeichnisstimmt 
04.
 
05.
:Verzeichnisstimmtnicht 
06.
echo Das Batch liegt nicht im korrekten Verzeichnis maps, sondern unter %cd% 
07.
pause 
08.
goto :eof 
09.
 
10.
:Verzeichnisstimmt 
11.
echo Das Batch liegt im korrekten Verzeichnis maps 
12.
pause
Das Label ":Verzeichnisstimmtnicht" hat dabei nur eine Kommentarfunktion, wird aber nicht benötigt.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch: Ordner auf Datei überprüfen

gelöst Frage von donmanolitoBatch & Shell4 Kommentare

Hallo Ich suche eine Möglichkeit alle Ordnernamen eines Verzeichnisses in eine Variable zu schieben um dann per Schleife ein ...

Batch & Shell

Splitten in Batch. Wo liegt der Fehler!?

gelöst Frage von TodybearBatch & Shell4 Kommentare

Hallo Administratoren, Ich stehe vor folgendem Problem. Ich habe eine install.wim, die 4,8 GB groß ist. Nun will ich ...

Windows 7

Ordner Icon wird nicht korrekt angezeigt

gelöst Frage von gabrixlWindows 725 Kommentare

Guten Tag Habe mir ein Programm erstellt, mit welchem man Ordner Icons ziemlich einfach festlegen kann. Das funktioniert eigentlich ...

Windows 8

Ordner werden nicht mit korrektem Datum angezeigt

Frage von geTr0ffEnWindows 87 Kommentare

Hallöchen, ich habe folgendes Problem. Nach einem Umzug wurden Dateien/Ordner von einem alten Laufwerk auf einen neuen PC kopiert. ...

Neue Wissensbeiträge
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 15 StundenDrucker und Scanner

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 1 TagRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 3 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 4 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Windows Netzwerk
Performance bei Terminalserver
Frage von azizalexanderWindows Netzwerk20 Kommentare

Hallo zusammen, Ich wusste nicht in welches Thema meine Frage passt ich Bitte um Vergebung falls ich hier falsch ...

Exchange Server
Exchange 2013 - Unable to Relay nach extern, SuperMailer
Frage von leon123Exchange Server16 Kommentare

Hallo zusammen, ich brauch mal wieder eure Hilfe. Ich beschäftige mich gerade mit dem SuperMailer und erhalte vom Exchange ...

CPU, RAM, Mainboards
Xeon E5620: noch schnell genug?
Frage von ahussainCPU, RAM, Mainboards15 Kommentare

Hallo allerseits, ich habe die Möglichkeit, aus Restbeständen einen Tower mit Xeon E5620 CPU und 24 GB RAM zu ...

Peripheriegeräte
Steckdose(nleiste) mit Schwellwert für off und mit externem Taster
Frage von ahstaxPeripheriegeräte15 Kommentare

Hallo, ich suche eine Steckdose oder Steckdosenleiste mit externem Taster und Schwellwerterkennung. Zu realisieren ist folgendes: Ein PC soll ...