Forum: PC-Programmierung [Win-CMD] auf Netzwerkpfad prüfen


von Matthias S. (da_user)


Lesenswert?

Hi,
ich will gerade eine Batch erstellen, die in ihrem Verzeichnis das eine 
oder andere anstellen soll. Dass kann/darf sie aber nicht, wenn aus 
einem Netzwerkpfad heraus gestartet wird.

Wie prüfe ich in einer Batch-File, ob es sich bei einem Verzeichnis um 
ein lokales Verzeichnis, oder um einen Netzwerkpfad handelt!

Zusatzaufgabe: Ich habe auch Probleme, wenn die Batch in einem 
Firmennetzwerk ausgeführt wird, und sich die Batch dann in den "Eigenen 
Dateien" des Benutzers gestartet wird, welche sich eigentlich auf dem 
Firmenserver befinden. (Active Directory?).
Die Batch darf nur rein lokal ausgeführt werden.

Warum das ganze? (Evtl. ergeben sich ja noch vollkommen andere 
Möglichkeiten)

Ich habe ein "DokuWiki on a Stick" 
(https://www.dokuwiki.org/install:dokuwiki_on_a_stick) aufgesetzt. Dort 
ist ein Apache-Webserver mit dabei, welcher lokal startet und dann das 
DokuWiki lokal verfügbar macht (einen Firmennetz internen Webserver 
bekomme ich nicht, insbesondere bei dem aktuellen Stand des Wikis). Der 
Apache-Server startet aber nur von einem lokalen Verzeichnis, das Wiki 
soll aber trotzdem auf ein Netzwerkverzeichnis synchronisiert werden.
Das Wiki wird mit einer mitgelieferten Batchfile gestartet, mit welcher 
der Apacheserver auch beendet wird. Ich kann also das Starten und 
Beenden des Wikis gut abfangen und möchte dann mit zwei Robocoypskripts 
die Änderungen beim Starten nach lokal (aka Arbeitsverzeichnis der 
Batchfile), und beim Beenden zum Netzwerkverzeichnis spiegeln.
Zudem soll dann eine "Lockfile" erstellt werden, die, versehen mit einem 
Warnhinweis, das Spiegeln beim Beenden verhindert wenn das Wiki bereits 
woanders gestartet wurde.

VG
da_user

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn ein "Netzwerkpfad" ein UNC-Pfad ist, kannst Du das leicht anhand 
des ersten Zeichens des Pfades verifizieren. Lokale Pfade fangen mit 
einem Laufwerksbuchstaben an, UNC-Pfade fangen mit einem Backslash '\' 
an.

Wenn der "Netzwerkpfad" ebenfalls einen Laufwerksbuchstaben hat, kannst 
Du mit "net use" eine Liste der zugewiesenen Laufwerksbuchstaben 
bestimmen.

Taucht der Laufwerksbuchstabe Deines Pfades in dieser Liste auf, kannst 
Du von einem Netzwerkpfad ausgehen.

In vielen Fällen kann man auch einfach jeden anderen Buchstaben als 'C' 
abweisen, aber natürlich nicht in jedem.

Matthias S. schrieb:
> Ich habe auch Probleme, wenn die Batch in einem Firmennetzwerk
> ausgeführt wird, und sich die Batch dann in den "Eigenen Dateien" des
> Benutzers gestartet wird, welche sich eigentlich auf dem Firmenserver
> befinden. (Active Directory?).

In so einem Fall beginnt der Pfad mit dem Inhalt der Umgebungsvariablen 
%USERPROFILE%.

von cd/pwd, net use. (Gast)


Lesenswert?

sollte doch deim Problem addressieren:

https://superuser.com/q/600353

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.