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

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

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
1000 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: 1 Mal

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

Beitrag von mini990 »

Hallo,
die Befehle Dirname(), DirChange() und evtl. auch weitere funktionieren nicht bei UNC-Pfaden.
Wie kann man 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 9: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!
Benutzeravatar
mini990
1000 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: 1 Mal

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

Beitrag von mini990 »

Hallo Dennis,
so umgehe ich das problem momentan auch.
Ist halt alles andere als elegant.....

Gruß Stefan
WernerSt
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 41
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:= set ( _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     = K => \\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.2\
Damit kann ich dann den benötigten Parameter für die Funktion hernehmen.
Benutzeravatar
mini990
1000 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: 1 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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

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

Beitrag von brandelh »

braucht man dafür Win 8 oder 10 ?

bei meinem Win 7 geht das nicht ;-)
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

brandelh hat geschrieben: Di, 24. Apr 2018 14:39bei meinem Win 7 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
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

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

Beitrag von brandelh »

was ist denn das ... wo stellt man das ein ? :oops:
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Bin auf dem Weg zum Billard...
Google is your friend. Registry oder cmd /e:On

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
mini990
1000 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: 1 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

Code: 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
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
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Standardmäßig ist das auch an - es kann aber wegen Problemen durch den Admin deaktiviert worden sein. Manuell. In der Registry.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 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>pause
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
1000 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: 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)
Die Batchdatei wird dann aber problemlos durchlaufen...

Gruß Stefan
Antworten