Autor
|
Thema: Batchdatei zum Tauschen von Netzlaufwerk (1416 mal gelesen)
|
DonChunior Mitglied CAD-Systemadministrator
Beiträge: 1149 Registriert: 09.09.2004 Windows 7 Enterprise x64 SP1
|
erstellt am: 20. Jan. 2015 08:07 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe folgende Ausgangssituation: Auf dem Server SERVER_1 gibt es eine Freigabe FREIGABE_A. Auf dem Server SERVER_2 gibt es eine Freigabe FREIGABE_B. Bei meinem PC ist das Laufwerk Z: mit dem Ordner \\SERVER_1\FREIGABE_A verbunden. Ich benötige nun eine Batchdatei, mit folgender Funktionalität:
- Wenn die Freigabe vom ersten Server verbunden ist, soll diese getrennt und die Freigabe des zweiten Servers verbunden werden.
- Wenn die Freigabe vom zweiten Server verbunden ist, soll diese getrennt und die Freigabe des ersten Servers verbunden werden.
Somit wird quasi bei jedem Ausführen der Batchdatei die Freigabe des Laufwerks Z: getauscht. Ich hoffe, jemand kann mir bei der Erstellung der gewünschten Funktionalität helfen?! ------------------ MfG, DonChunior BOINC - Rechenleistung spenden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rainer Schulze Ehrenmitglied V.I.P. h.c. Dipl.-Ing. im Ruhestand
Beiträge: 4419 Registriert: 24.09.2012
|
erstellt am: 20. Jan. 2015 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für DonChunior
>>Wenn die Freigabe vom ersten Server verbunden ist So aus dem Stegreif bekomme ich die entsprechende Abfrage nicht hin, aber schau Dir mal die Hilfe zu "net" und "if" an. >>Somit wird quasi bei jedem Ausführen der Batchdatei die Freigabe des Laufwerks Z: getauscht. So kann man aber auch versehentlich die falsche Quelle aktivieren. Ich würde dafür zwei getrennte Batch-Dateien wählen: SHARE_A.cmd: net use z: /delete net use z: \\server_1\FREIGABE_A SHARE_B.cmd: net use z: /delete net use z: \\server_2\FREIGABE_b ------------------ Rainer Schulze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DonChunior Mitglied CAD-Systemadministrator
Beiträge: 1149 Registriert: 09.09.2004 Windows 7 Enterprise x64 SP1
|
erstellt am: 20. Jan. 2015 09:20 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Rainer Schulze: ... >>Somit wird quasi bei jedem Ausführen der Batchdatei die Freigabe des Laufwerks Z: getauscht.So kann man aber auch versehentlich die falsche Quelle aktivieren. Ich würde dafür zwei getrennte Batch-Dateien wählen ...
Dass nur eine Batchdatei zum Tauschen der Freigaben vorhanden ist, ist eine Anforderung, die erfüllt sein muss. Am IF bin ich eben auch gescheitert. Aber es gibt sicher einen Spezialisten, der hier weiterhelfen kann ... ------------------ MfG, DonChunior BOINC - Rechenleistung spenden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Grebe Mitglied
Beiträge: 536 Registriert: 16.12.2002
|
erstellt am: 20. Jan. 2015 09:32 <-- editieren / zitieren --> Unities abgeben: Nur für DonChunior
Ich würde mal probieren SHARE_A.cmd als SWITCH.cmd auf FREIGABE_B und SHARE_B.cmd auch als SWITCH.cmd auf FREIGABE_A zu legen. Die eigentliche Batch zum Wechseln wäre dann EINE SWITCH_Z.cmd mit dem Inhalt Z:SWITCH.cmd Diese ruft dann über Z: die jeweils passende zum Wechsel auf die andere Freigabe auf. Mathias /edit P.S.: Sollte das nicht gehen, da während der Abarbeitung der CMD auf Z: das Laufwerk gelöscht wird, könntest Du die passende CMD von Z: zuerst lokal kopieren und dort aufrufen. /edit [Diese Nachricht wurde von Grebe am 20. Jan. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DonChunior Mitglied CAD-Systemadministrator
Beiträge: 1149 Registriert: 09.09.2004 Windows 7 Enterprise x64 SP1
|
erstellt am: 20. Jan. 2015 09:58 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Grebe: Ich würde mal probieren SHARE_A.cmd als SWITCH.cmd auf FREIGABE_B und SHARE_B.cmd auch als SWITCH.cmd auf FREIGABE_A zu legen.Die eigentliche Batch zum Wechseln wäre dann EINE SWITCH_Z.cmd mit dem Inhalt Z:SWITCH.cmd Diese ruft dann über Z: die jeweils passende zum Wechsel auf die andere Freigabe auf.
Das wäre mal ein Ansatz, danke dafür! Der Nachteil (ist natürlich Ansichtssache) dabei ist, dass drei Batchdateien notwendig sind. Alles in einer Datei wäre mir am liebsten, hat dazu noch jemand eine Idee? ------------------ MfG, DonChunior BOINC - Rechenleistung spenden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Grebe Mitglied
Beiträge: 536 Registriert: 16.12.2002
|
erstellt am: 20. Jan. 2015 10:34 <-- editieren / zitieren --> Unities abgeben: Nur für DonChunior
Den Output von "net use" z.B. in eine Textdatei umleiten, dort mittels "find" versuchen heraus zu finden, welche Verbindung besteht und dann auf die andere umschalten. Wird aber aufwändiger als die drei Kleinen. Mathias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fritsrol Mitglied CAD-Systemingenieur
Beiträge: 143 Registriert: 11.12.2002 Windows 10 64 Office 2016 Eplan P8 2.7 HF2 VS 2015 Medusa 2000i2
|
erstellt am: 20. Jan. 2015 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für DonChunior
for /F "tokens=1,2 delims=" %%a IN ('net use z:') do @call :doShare %%a %%b net use z: /delete net use z: shareneu goto :eof :doShare echo .... %1 %2 if [%2]=share1 set shareneu=share2 if [%2]=share2 set shareneu=share1 goto :eof Gruß Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fritsrol Mitglied CAD-Systemingenieur
Beiträge: 143 Registriert: 11.12.2002
|
erstellt am: 20. Jan. 2015 11:04 <-- editieren / zitieren --> Unities abgeben: Nur für DonChunior
|
fritsrol Mitglied CAD-Systemingenieur
Beiträge: 143 Registriert: 11.12.2002 Windows 10 64 Office 2016 Eplan P8 2.7 HF2 VS 2015 Medusa 2000i2
|
erstellt am: 20. Jan. 2015 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für DonChunior
So nochmal ohne Schreibfehler : set share1=\\Server1\ShareA set share2=\\Server2\ShareB for /F "tokens=1,2 delims=" %%a IN ('net use z:') do @call :doShare %%a %%b net use z: /delete net use z: %shareneu% goto :eof :doShare echo .... %1 %2 if [%2]==[%share1%] set shareneu=%share2% if [%2]==[%share2%] set shareneu=%share1% goto :eof
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rainer Schulze Ehrenmitglied V.I.P. h.c. Dipl.-Ing. im Ruhestand
Beiträge: 4419 Registriert: 24.09.2012
|
erstellt am: 20. Jan. 2015 11:13 <-- editieren / zitieren --> Unities abgeben: Nur für DonChunior
>>Alles in einer Datei wäre mir am liebsten, hat dazu noch jemand eine Idee? Das Problem besteht in der Identifizierung der aktuellen Verknüpfung. Mit "net use z:" erhältst Du einen 5-Zeiler... IF <Kriterium a> goto SWITCH_A IF <Kriterium b> goto SWITCH_B Abfangen, was geschehen soll, wenn KEIN Laufwerk verbunden ist... :SWITCH_A net use z: \\server_1\Freigabe_A goto END :SWITCH_B net use z: \\server_2\Freigabe_B :END ------------------ Rainer Schulze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Grebe Mitglied
Beiträge: 536 Registriert: 16.12.2002 LT-2021, Civil3D-2021, BricsCAD V18 HP-DesignJet T1200
|
erstellt am: 20. Jan. 2015 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für DonChunior
|
DonChunior Mitglied CAD-Systemadministrator
Beiträge: 1149 Registriert: 09.09.2004 Windows 7 Enterprise x64 SP1
|
erstellt am: 20. Jan. 2015 11:38 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von fritsrol:set share1=\\Server1\ShareA set share2=\\Server2\ShareB for /F "tokens=1,2 delims=" %%a IN ('net use z:') do @call :doShare %%a %%b net use z: /delete net use z: %shareneu% goto :eof :doShare echo .... %1 %2 if [%2]==[%share1%] set shareneu=%share2% if [%2]==[%share2%] set shareneu=%share1% goto :eof
Spitze, fritsrol! Funktioniert wunderbar. ------------------ MfG, DonChunior BOINC - Rechenleistung spenden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DonChunior Mitglied CAD-Systemadministrator
Beiträge: 1149 Registriert: 09.09.2004 Windows 7 Enterprise x64 SP1
|
erstellt am: 18. Mrz. 2015 08:05 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von DonChunior: Spitze, fritsrol! Funktioniert wunderbar.
fritsrol, ein Problem habe ich noch, wenn ich mittels des Batchfiles nun die verbundene Freigabe des Netzlaufwerks tausche, wird im Explorer trotzdem noch der Name der vorigen Freigabe angezeigt. Die Filesystem-Struktur entspricht aber schon derjenigen, die gerade neu verbunden wurde. Das Aktualisieren der Ansicht mittels [F5] hilft hierbei nichts ... Irgendeine Ahnung, wo hier noch das Problem liegt? ------------------ MfG, DonChunior BOINC - Rechenleistung spenden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fritsrol Mitglied CAD-Systemingenieur
Beiträge: 143 Registriert: 11.12.2002
|
erstellt am: 18. Mrz. 2015 10:04 <-- editieren / zitieren --> Unities abgeben: Nur für DonChunior
|