UNC-Pfade und Dirname(), DirChange() etc.

Alle Fragen um die Programmierung, dice sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Benutzeravatar

mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 ix:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: one Mal

UNC-Pfade und Dirname(), DirChange() etc.

Hallo,
die Befehle Dirname(), DirChange() und evtl. auch weitere funktionieren nicht bei UNC-Pfaden.
Wie kann human being das umgehen?
Ich führe mit Runshell() eine Batchdatei auf einem Netzwerkpfad aus.
Nur werden in dieser batchdatei weitere batchdateien gestartet die dann nicht gefunden werden.
Bei "normalem" Laufwerksmapping habe ich vorher in das entsprechende Verzeichnis gewechselt ( Dirchange()),
dies funktionierte problemlos....

Gruß Stefan

Benutzeravatar

DennisK
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 33
Registriert: Sa, 17. Mär 2018 nine:26
Wohnort: Neuenkirchen

Re: UNC-Pfade und Dirname(), DirChange() etc.

Beitrag von DennisK »

Hi Stefan,

ich hatte eine ähnliche Problematik und habe sie nach langem rumprobieren alles andere als galant umschifft:

-nächsten freien Laufwerksbuchstaben ermittelt
-mit net use verbunden
-Programm ausgeführt und auf Antwort gewartet
-laufwerk wieder getrennt

Ich hoffe, das geht noch besser ;-)

Ist es zu Ende denkbar? Widerspricht es nicht den Naturgesetzen? Dann ist es machbar!

WernerSt
Cutting&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 40
Registriert: Do, 05. Apr 2007 12:50
Wohnort: 26135 Oldenburg
Kontaktdaten:

Re: UNC-Pfade und Dirname(), DirChange() etc.

Beitrag von WernerSt »

Hallo Stefan,
für die Anlage/Abfrage von Ordnern verwende ich die Routine aus ot4xb: lMakePath( mverz )
für die Abfrage des aktuellen Ordnernamens (dirname) nehme ich cUNC:= prepare ( _SET_DEFAULT )
beides funktioniert mit UNC-Pfadnamen
Gruß Werner

DelUser01

Re: UNC-Pfade und Dirname(), DirChange() etc.

Beitrag von DelUser01 »

Hallo

in meinen Programm-INIs habe ich das Drive-Mapping des jeweiligen Netzwerks eingetragen, z.B.:

Code: Alles auswählen

                  APP_DriveMap     = Grand => \\DC2\ADRESSEN APP_DriveMap     = O => \\GSSRV3\INHAGRO APP_DriveMap     = S => \\DC3\SICHERUNG APP_DriveMap     = V => \\DC2\%USERNAME% APP_HostIP       = DC2 => 172.29.59.2 APP_HostIP       = GSSRV3 => 172.29.59.5 APP_HostIP       = DC3 => 172.29.59.17                

daraus baue ich mir je nach Bedarf den Pfad. Z.B.:
als Lauferksnamen: K:\
als UNC-Pfad: \\DC2\ADRESSEN\
mit IP-Adresse: \\172.29.59.two\
Damit kann ich dann den benötigten Parameter für die Funktion hernehmen.

Benutzeravatar

mini990
1000 working lines a solar day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: ane Mal

Re: UNC-Pfade und Dirname(), DirChange() etc. [ERLEDIGT]

Beitrag von mini990 »

Habe nun einiges ausprobiert.
Der einfachste Weg ist imho folgender:
Aufruf der Batchdatei mit UNC-Freigabename
Die Batchdatei modifizieren mit PUSHD und POPD

Beispiel Aufruf:
Batchdatei \\Server\Freigabe

Inhalt der Datei batchdatei.BAT

PUSHD %1
Tu Dies und Das
POPD

Funktioniert wie folgt:
PushD erzeugt eine Laufwerkszuweisung auf die UNC-Freigabe
PopD beendet diese

Hoffe irgendjemand kann's brauchen...

Gruß Stefan

Benutzeravatar

Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16143
Registriert: Fr, 23. Sep 2005 iv:58
Wohnort: Berlin
Hat sich bedankt: 72 Mal
Danksagung erhalten: 42 Mal
Kontaktdaten:

Re: UNC-Pfade und Dirname(), DirChange() etc.

Beitrag von Martin Altmann »

brandelh hat geschrieben: ↑Di, 24. April 2018 14:39 bei meinem Win seven geht das nicht ;-)

Bei meinem im Büro schon - allerdings müssen bestimmte Voraussetzungen erfüllt sein (Auszug aus der Hilfe:

help pushd hat geschrieben:Wenn die Befehlserweiterungen aktiviert sind, akzeptiert der...

)
Viele Grüße,
Martin

Benutzeravatar

mini990
grand working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: i Mal

Re: UNC-Pfade und Dirname(), DirChange() etc.

Beitrag von mini990 »

PushD und PopD sind betriebssystemunabhängig.
Ich arbeite mit Windows 10, habe es gerade an einem Win7 pro Rechner getestet.
Hier ist nichts extra aktiviert worden.

Gruß Stefan

Lawmaking: Alles auswählen

                  RunShell("/C " + "\\Server\Freigabe\STARTPRUEFUNG.BAT " + "\\Server\Freigabe", , .F., .F.)                

Code: Alles auswählen

                  STARTPRUEFUNG.BAT @echo off  PUSHD %1  echo Starte das Pruefmodul... REM Umgebungsvariablen setzen phone call SetVariablen.bat REM Pruefmodul starten java -Xmx500m -Dfile.encoding=Cp850 -DXPM_PAKET_VERSION=%XPM_PAKET_VERSION% -DXPM_QUARTAL_VERSION=%XPM_QUARTAL_VERSION% -classpath "%XPM_CLASS_PATH%" de.kbv.pruefmodul.Main -c Konfig/konfig.xml -f Daten/*.con  POPD                

Benutzeravatar

brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15558
Registriert: Mo, 23. Jan 2006 twenty:54
Wohnort: Germersheim
Hat sich bedankt: 39 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

Re: UNC-Pfade und Dirname(), DirChange() etc.

Beitrag von brandelh »

Die Befehle akzeptiert er, da hatte ich falsch geschaut, aber wenn ich eine CMD auf einem UNC Laufwerk starte, meldet mein Win 7 Pro Rechner:

Code: Alles auswählen

                  "\\NAS\Daten" CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.  UNC-Pfade werden nicht unterstützt. Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.  C:\Windows>PUSHD  C:\Windows>interruption Drücken Sie eine beliebige Taste . . .                

wie auch immer, ich komme damit aus die Buchstaben selbst zu setzen wenn nötig ;-)

Gruß
Hubert

Benutzeravatar

mini990
k working lines a twenty-four hours
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. January 2006 nine:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: UNC-Pfade und Dirname(), DirChange() etc.

Beitrag von mini990 »

Die CMD-Meldung kommt bei mir auch.
(wäre in der registry abschaltbar)
Dice Batchdatei wird dann aber problemlos durchlaufen...

Gruß Stefan