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, 5165 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
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 ...

Batch & Shell

Batch - erkennen, ob ein Pfad lokal ist oder im Netzwerk liegt

gelöst Frage von zimbosmurfBatch & Shell3 Kommentare

Hallo! Ich möchte mit einer Batchdatei etwas nach %programfiles%, also bei deutschem Windows nach c:\Programme kopieren. Konkret soll ein ...

Firewall

Sophos Firewall korrekt einstellen

Frage von dreckigersockenFirewall3 Kommentare

Mahlzeit Leute, ich habe mir zu Hause eine Sophos UTM eingerichtet auf aktuellem Softwarestand. Hier zuerst der Aufbau: Zur ...

Windows Update

WSUS Genehmigungen korrekt setzen

gelöst Frage von M.MarzWindows Update3 Kommentare

Hallo Leute, es kommen ja immer wieder mal neue Updates von Microsoft, die dann der WSUS erkennt und anbietet. ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 1 TagInternet4 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 1 TagWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 2 TagenWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 2 TagenSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
TK-Netze & Geräte
TAPI auf einem Win2016Server installieren und einrichten
Frage von wstabelTK-Netze & Geräte28 Kommentare

Hallo liebe Admins, ich habe folgende Situation: 1 Windows Server 2016 Standard als DC 1 SNOM 710 IP-Telefon 1 ...

Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell24 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...

Microsoft
Übertragung von MS Volumenlizenzen
Frage von SherlockineMicrosoft19 Kommentare

Ich bin Angestellte in einer kleinen 10-köpfigen IT-Firma, die Netzwerklösungen, Telefonielösungen und Ähnliches anbietet. Im Sommer hatten wir einen ...