Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

In Batch testen ob Laufwerksbuchstabe einem Netzlaufwerk zugeordnet

Frage Entwicklung Batch & Shell

Mitglied: 24855

24855 (Level 1)

06.03.2006, aktualisiert 07.03.2006, 17188 Aufrufe, 14 Kommentare

Hallo Leute,

ich möchte in einer Batch überprüfen, ob ein Buchstabe schon einem Laufwerk zugeordnet ist..
eigentlich müsste es doch wie bei einem normalen Ordner funktionieren, in dem ich überprüfe, ob es in dem Pfad ein "null" device gibt ... problem .. er sagt mir "/nul" ist an dieser Stelle syntaktisch nicht verarbeitbar... ????
.. mein Buchsatabe ist hier "i" ich will auf diese Art und Weise 2 Buchstaben durchtesten und zur Not auf einen 3. gehen .. einer muss ja mal frei sein
...
if (exist %i:%\nul) goto iistda Else (goto iistnichtda)
...

thx 4 Help

Janosch


edit ..als ich meinen Beitrag noch mal las .. in eurer Schrift art fiel mir auf das die Klammer vor der Bedingung stand .. muss nochmals testen .. aber ich denke, das ist schon die Lösung
Mitglied: meinereiner
06.03.2006 um 16:07 Uhr
if exist I:\NUL

geht bei mir.
Bitte warten ..
Mitglied: Biber
06.03.2006 um 16:31 Uhr
...oder, um meinereiners Gedanken fortzuführen und 3 Laufwerke I:, J: und M: zu prüfen...

For %%x in ( I J M) do if not exist %%x:\nul echo Kein Lw %%x:\ vorhanden!

HTH Biber
Bitte warten ..
Mitglied: Hummel85
06.03.2006 um 16:42 Uhr
Hallo WI#Janosch.

Hast du am Anfang deiner Batch die Variable %i:% definiert?

Du kannst also die Sache auf 2 arten angehen.

1. Variante du legst am anfang fest welche Laufwerke du testen willst
.........
set Laufwerk1=I:
set Laufwerk2=K:
set Laufwerk3=L:

if not exist %laufwerk1% goto I_frei
if not exist %laufwerk2% goto K_frei
if not exist %Laufwerk3% goto L_frei
goto nicht_da

:I_frei
REM Hier kommen die Befehle hin die Ausgeführt werden sollen wenn I: frei ist.
exit

:K_frei
REM Hier kommen die Befehle hin die Ausgeführt werden sollen wenn K: frei ist.
exit

:L_frei
REM Hier kommen die Befehle hin die Ausgeführt werden sollen wenn L: Frei ist.
exit

:nicht_da
REM Hier kommen die Befehle hin die Ausgeführt werden sollen wenn keiner der 3 Laufwerke frei ist.
exit


Du kannst das Ganze auch machen in dem du den set Befehl weg lässt und nur nach den Laufwerken an sich suchst.

Also nur mal so als Beispiel
if not exist I: goto I_Frei


Das sind meine Vorschläge es gibt noch mehr aber es fällt mir kein weiterer ein.
Ich Hoffe das die dieser Kommentar hilft.
Bitte warten ..
Mitglied: 24855
06.03.2006 um 17:47 Uhr
Hi Leute ihr seit echt spitze ... soviel Lösungen in der Zeit .. ich muss beschähmt zugeben, es etwas zu einfach gesehen zu haben...

also auf der Maschine geht lokal!!!!! folgendes:

if exist i:\nul goto iistda
if not exist i:\nul goto iistnichtda

:iistnichtda
echo i
goto kopiert

:iistda
if exist j:\nul goto jistda
if not exist j:\nul goto jistnichtda

goto jistnichtda
echo j

goto kopiert

:jistda
echo h
goto kopiert

:jistnichtda
echo j

:kopiert


pause


..................

nur leider hab ich nicht bedacht, dass mich das nicht weiter bringt, die Batch welche das Netzlaufwerk braucht um ein Logfile "nachhause" zu kopieren, wird von PSexec.exe unterstützt, remote auf dem Client gefahren ... und leider muss es wohl so sein, dass der lokale User seine Netzlaufwerke sehen kann, auch aus der shell, aber wenn ich mich mit dem selben user remote connecte und mein Loggin file nach getaner Arbeit kopieren will, seh ich keines der Netzlaufwerke, welche in "use" sind .. demzufolge nimmt das Script "i", "i" ist aber belegt, also Fehler, Script hängt... grummel


jetzt muss ich mir erst mal was Überlegen wie ich das anders checken kann, ob das Laufwerk vorhanden ist, vielleicht mit dem Errorlevel von irgenteiner aktiondie nicht zum Abbruch der Verarbeitung führt.. ich hoffe mir kann noch wer folgen .. ich sitz seit fast 9 Stunden in nem schlecht gelüftetene Serverraum und hab langsam "Gehirngulasch" .. mach jetz terst mal Feierabend .. wenn also wer ne Idee hat, hat bis morgen zeit .. thx
Bitte warten ..
Mitglied: Hummel85
07.03.2006 um 07:25 Uhr
Hallo WI#Janosch.

Was Hällst du denn davon einfach die batch die du hast auf deinem Rechner zu hause ausführen lässt?

Kannst du uns mal genau erklären was du vor hast! Also ich für mein Teil verstehe nicht was daran nicht geht.
Bitte warten ..
Mitglied: 24855
07.03.2006 um 09:26 Uhr
ok wenn das nicht verständlich war, probiere ich es nocheinmal zu erklären.

Die oben von mir gepostete Lösung funktioniert! Sie funktioniert aber nur, wenn man sie ausführt wenn man direkt vor einem Rechner sitzt. Also lokal als User angemeldet ist.
Ich habe aber das Problem,das ich meine Batch remote starte, also mich mit psexec von der ferne connecte, und die Batch dann auf dem Rechner auf den ich mich connectet habe lokal starte, diese entfernt dort einige veraltete Tools und erzeugt ein errorlog, dieses Log muss ich dann an den entfernten Rechner schicken, von dem aus alles initiert wurde.

So zum Problem:
Wenn ich remote connectet bin erkennt er die Netzlaufwerke die schon benutzt werden nicht mit der Lösung von oben die so schön ist - es geht nicht!

ALso lautet die Frage ob man probiert ein Netzlauf mit Net use "zu mounten" und dann ggf das errorlevel händelt und darauf basierend eine routine bekommt mit der man "remote" nach belegten Netzlaufwerken sucht ???? .. ich hoffe ich habe es jetzt nachvollziehbarer schildern können...
Bitte warten ..
Mitglied: Hummel85
07.03.2006 um 09:57 Uhr
Also wenn ich das jetzt richtig verstanden habe willst du die batch (zum testen ob die laufwerke schon belegt sind) auf dem anderen ausführen.

Warum kopierst du nicht die batch auf den anderen Rechner und startest sie dann via Remote auf diesem rechner.

Nachdem die Errorlog kopiert wurde kannst du das netzlaufwerk unmounten und die Batch löschen.

Wäre jetzt mein vorschlag.
Bitte warten ..
Mitglied: 24855
07.03.2006 um 10:15 Uhr
Hallo Hummel85 ... genau das passiert ja, PSEXEC.exe connectet sich,
kopiert die Batch auf den Rechner der die Netzlaufwerke verbinden soll,
und startet die Batch auf diesem Lokal. Es geht trotzallem nicht,
ich hab auch schon eine Batch getstet, welche nur nach belegten Laufwerks-
buchstaben sucht. Geht wenn ich vor der Box sitze, geht nicht remote,
auch wenn dort lokalgestartet(per remote)...

Ich habe das Problem,das ich vorher nicht weis welche Netzlaufwerke, default, also vor
meinem Connect belegt sind, die selbst erstellten lösche ich ja sofort nachdem ich mein logfile
habe, sonst könnten die Leute von den Zielrechnern ja auf meinem Server rumkramen
Bitte warten ..
Mitglied: Hummel85
07.03.2006 um 10:28 Uhr
Hi WI#Janosch.

Nach meinem Feierabend habe ich das ganze Szenario mal durchgespielt.

Habe ein 2. Rechner genommen( bei beiden Windows XP Professionell drauf).

Habe dann via VNC ( also remote) gestartet.
Die Batch auf den 2. Rechner kopiert.
Batch gestartet.

Alles hat einwandfrei geklappt.

Darum verstehe ich ja auch nicht warum es bei dir nicht geht.

Wenn du willst kann ich dir heute Abend mal die Batch die ich geschrieben komplett schicken. Bin nur gerade auf arbeit und habe mein Rechner aus also komme nicht an meine Daten auf meiner Festplatte ran. Vielleicht kann ja bis dahin jemand anderes dein Problem lösen.
Bitte warten ..
Mitglied: 24855
07.03.2006 um 10:33 Uhr
ist ja echt nett von euch das ihr soviel Aufwand betreibt, nur leider bringt mich auch das nicht weiter,
weil meine Batch Real und TightVnc entfernt, damit ich einheitlich auf Ultra VNC umstellen kann, dass das funktioniert was du da gemacht hast, ist ziemlich klar. Da du mit nem VNC die aktive Sitzung des lokalen User direkt übernimmst (consolen modus), So ist es denn also als würde der lokale User die Batch starten. .. bin wohl echt im Ars*** mit meinem exotischen Sonderproblemchen
Bitte warten ..
Mitglied: Hummel85
07.03.2006 um 10:43 Uhr
Ja das mit dem Testen gestern Abend war kein Aufwand. Hat 10 min gedauert da ich ja sowieso VNC schon am laufen habe.

Ist das nicht egal wie du die Batch Startest?

Hauptsache die Batch wir auf dem zu steuernden Rechner ausgeführt. Oder sehe ich das jetzt falsch? Hab leider nicht die absolute Ahnung von Remote.
Bitte warten ..
Mitglied: 24855
07.03.2006 um 10:55 Uhr
ich versteh es ja auch nicht so ganz, es scheint als würde der Dienst den Psexec.exe startet, ist nur consolen basiert, im Hintergrund laufen, parallel zum User der da akkert. Auf jeden Fall läuft die Batch welche lokal zuverlässig ihren Dienst verrichtet nicht wen ich sie kommandozeilenbasiert remote starte
Bitte warten ..
Mitglied: Hummel85
07.03.2006 um 12:46 Uhr
Na ja tut mir leid das ich da nicht weiter Helfen konnte.

Soll ich dir trotzdem die batch geben die ich geschrieben habe?
Bitte warten ..
Mitglied: 24855
07.03.2006 um 16:14 Uhr
das ist n nettes Angebot.. aber danke wird mich nicht weiter bringen, muss mir n anderen Ansatz überlegen und daran basteln bis es klappt, zur not muss ich das Loggib file mailen oder so... bastel der weil noch an anderen Sachen und denk bis morgen nicht mehr dran.. vielelicht reicht der Abstand für neue Ideen trotzallem thx 2 4LL
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Netzwerk
Netzwerkressource ohne Laufwerksbuchstabe via Batch bzw. Scrip erstellen (13)

Frage von der-suchende zum Thema Windows Netzwerk ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...