kleinemeise
Goto Top

netzlaufwerk löschen, falls vorhanden mit Batch

Hallo Leute,

ich würde gern per batch Script schauen, ob ein Netzlaufwerk verbunden ist, wenn ja, soll es gelöscht werden.

Nur finde ich nicht wirklich eine Lösung wie ich danach schaue. Es exisiert nicht immer ein Schreibrecht auf dem Laufwerk und die Dateien sind unterschiedlich.

Danke

Content-ID: 106110

Url: https://administrator.de/contentid/106110

Ausgedruckt am: 26.11.2024 um 00:11 Uhr

60730
60730 15.01.2009 um 10:52:14 Uhr
Goto Top
servus,

if exist x:\>nul net use x: /d
net use x: \\server\freigabe


Gruß
kleinemeise
kleinemeise 15.01.2009 um 12:57:23 Uhr
Goto Top
hey danke ;) werde es morgen gleich mal testen
kleinemeise
kleinemeise 16.01.2009 um 12:17:26 Uhr
Goto Top
if exist C:\>nul echo Laufwerk C gibt es 


echo %errorlevel%

wird nie wahr face-sad
kleinemeise
kleinemeise 20.01.2009 um 15:19:17 Uhr
Goto Top
hat keiner noch einen kleinen Tip für mich?
60730
60730 20.01.2009 um 15:28:35 Uhr
Goto Top
Zitat von @kleinemeise:
hat keiner noch einen kleinen Tip für mich?

doch doch..

if exist x:\>nul net use x: /d
net use x: \\server\freigabe
nimm das >nul raus
if exist x:\ net use x: /d
net use x: \\server\freigabe

Ansonsten:

set "freigabe=\\meinserver\freigabe"  
Net Use |find "%freigabe%"  
If not %errorlevel% == 1 echo Freigabe verbunden

Gruß
Biber
Biber 20.01.2009 um 21:06:24 Uhr
Goto Top
Zitat von @kleinemeise:
> if exist C:\>nul echo Laufwerk C gibt es 
> 
> 
> echo %errorlevel%
> 

wird nie wahr face-sad

Moin kleinemeise,

da muss ich kurz einschreiten.
Da hast nicht ganz Recht mit der Aussage "wird nie wahr".
Das Hinterhältige an Bätchen und der CMD.exe ist ja, dass immer stupide das gemacht wird, was der werte Wünschende verlangt.
[ Das Thema wurde von Hollywood z.B. in Wishmaster und Wishmaster II aufgegriffen.
Sind Horrorfilme - wie zu erwarten war.]

Was T-Mo vom CMD-Interpreter verlangt und Du im guten Glauben weitergereicht hast, war die Aufforderung:
if exist C:\>nul echo Laufwerk C gibt es  
...zu lesen so:
  • Schritt 1: Prüfe die Bedingung "If exist c:\"
  • Schritt 2: NUR WENN BEDINGUNG WAHR führe alles rechts der Prüfung stehende Gestammel aus
  • Schritt 3: Hey, Bedingung ist wahr. Also: lenke ins Nirwana [">nul"] das Ergebnis von "echo Laufwerk C gibt es".
Hatter gemacht, der Dussel.

Kannst Du überprüfen, indem Du mal das ">nul" änderst auf ">con" [schreibe es auf'n Schirm]

Was T-Mo eigentlich wollte, nämlich eine mögliche Fehlermeldung wie "Laufwerk X: nicht gefunden" unterdrücken
---> ist beim IF EXIST nicht nötig.

Siehe diesen Versuch mit einem Laufwerk "ü":
[Demo am CMD-Prompt -einzugebene Zeilen dargestellt durch ">" am Anfang]
>for %i in (r t z u i o p ü) do @if exist %i:\ @echo %i gibt es
r gibt es
t gibt es
z gibt es
o gibt es
p gibt es

>for %i in (r t z u i o p ü) do @if not exist %i:\ @echo %i gibt es nicht!
u gibt es nicht!
i gibt es nicht!
ü gibt es nicht!

Ebenso gut gemeint, aber ziemlich inkompatibel mit der Realiät ist die ERRORLEVEL-Abfrage, denn...
>for %i in (r t z u i o p ü) do @if not exist %i:\ @echo %i gibt es nicht! !errorlevel!
u gibt es nicht! 0
i gibt es nicht! 0
ü gibt es nicht! 0
... das ERRORLEVEL ist immer 0 = "Kein Fehler"
--> denn der "Prüfungsbefehl" IF EXIST konnte doch ohne Fehler ausgeführt werden.

Und das bleibt auch so, wenn ich den letzten Mist auf Existenz prüfen lasse:
>for %i in (:-p) do @if not exist %i:\ @echo %i gibt es nicht! !errorlevel!
:-p gibt es nicht! 0

So... jetzt könnt ihr nach diesem kleinen Exkurs wieder bei der IF EXIST [Netzlaufwerk]-Prüfung wieder aufsetzen.

Grüße
Biber
kleinemeise
kleinemeise 21.01.2009 um 07:50:27 Uhr
Goto Top
danke lieber Biber ;) mir was mit dem >nul nicht bewusst.

Sobald ich alles gelöst habe, makiere ich das Thema als gelöst <freu>
60730
60730 21.01.2009 um 14:03:37 Uhr
Goto Top
Zitat von @kleinemeise:
danke lieber Biber ;) mir was mit dem >nul nicht bewusst.

Sobald ich alles gelöst habe, makiere ich das Thema als
gelöst <freu>

Servus,

nachdem Biber ja alles erklärt hat und du offensichtlich immer noch ein Problem hast - sei mir gestattet auch noch einen klitzekleinen Tipp abzugeben.
Und nebenbei die Frage stellen zu dürfen, wo es denn noch hängt?

Es exisiert nicht immer ein Schreibrecht auf dem Laufwerk und die Dateien sind unterschiedlich.

das mag ja sein, aber "gewisse" Ordner sind immer / oder auch nicht vorhanden.

if exist a:\. echo Laufwerk A vorhanden
if exist b:\. echo Laufwerk B vorhanden

. ist immer der Hauptordner" - siehe cd . oder cd ..
Gruß
kleinemeise
kleinemeise 21.01.2009 um 15:03:12 Uhr
Goto Top
ich hatte bloß noch keine Zeit, das ganze zu Testen ;)

danke an euch alle
kleinemeise
kleinemeise 27.03.2009 um 08:09:39 Uhr
Goto Top
Hallo Leute, nochmals riesen dank.

Hab jetzt nur noch ein Problem:

Wenn ich das Netzlaufwerk z.B. Y noch offen habe, wenn das Script läuft, will das Script es trennen

"Soll die verbindung autotmatisch getrennt werden [Y] [N]" --> oder so ähnlich

Kann ich diese Abfrage automatisch beantworten lassen?

Danke
bastla
bastla 27.03.2009 um 18:40:49 Uhr
Goto Top
Hallo kleinemeise!

Spendiere dem "net use" noch ein "/y" ...

Grüße
bastla
kleinemeise
kleinemeise 08.04.2009 um 08:37:06 Uhr
Goto Top
DANKE,

hat funktioniert.

das /y habe ich nirgends in einer Doku gefunden :-?
bastla
bastla 08.04.2009 um 10:19:33 Uhr
Goto Top
Hallo kleinemeise!
das /y habe ich nirgends in einer Doku gefunden :-?
Dafür gibt's ja auch das Forum hier (und da speziell Biber) face-wink ...

Grüße
bastla