Top-Themen

Aktuelle Themen (A bis Z)

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

Batch Datei, abfrage von Festplatten

Frage Entwicklung Batch & Shell

Mitglied: Womanizer

Womanizer (Level 1) - Jetzt verbinden

06.07.2007, aktualisiert 10.07.2007, 9030 Aufrufe, 9 Kommentare

Hallo,

ich möchte wissen ob folgendes realisierbar ist über eine Batch-Datei. In der Batchdatei soll eine Abfrage stattfinden ob Laufwerke c:/d:/e: vorhanden sind, wenn Ja, soll mein Befehl ausgeführt werden. Soweit so einfach. Mein befehl kann aber nur auf Festplatten ausgeführt werden, da die Befehle Daten schreiben bzw. löschen sollen. Auf d: wenn dies ein CD-ROm Laufwerk ist kann ja logischerweise nicht geschrieben werden.. Ist es möglich per batch Datei herauszufinden ob Laufwerk d: eine Festplatte ist, wenn ja, soll mein Befehl ausgeführt werden....?

Danke schonmal für eure Hilfe. Hoffe das meine Formulierungen doch für den ein oder anderen verständlich sind *g*

Gruss, André
Mitglied: talkinghands
06.07.2007 um 14:23 Uhr
hallo erstmal,
01.
echo ist da jemand >H:\binda.txt 
02.
if exist h:\binda.txt goto tuwas 
03.
goto ende 
04.
 
05.
:tuwas 
06.
hier steht dann der oder die  befehl(e), welche ablaufen sollen... 
07.
if exist H:\binda.txt del H:\binda.txt 
08.
goto ende 
09.
 
10.
:ende
Ciao
TH
Bitte warten ..
Mitglied: Womanizer
06.07.2007 um 14:30 Uhr
Das problem ist ja das z.b. H:/ ein CD-Laufwerk sein könnte oder eine SD-Karte auf die nicht geschrieben werden soll. Die Batch-Datai soll quasi erkennen ob es eine Festplatte ist und kein CD-Rom Laufwerk.

Ist dies möglich?
Bitte warten ..
Mitglied: talkinghands
06.07.2007 um 14:33 Uhr
if exist h:\binda.txt klappt dann eben nicht

da binda.txt ja nicht geschrieben werden konnte

ist also ein schreibgeschützes Laufwerk

also wird ans ende gesprungen und nichts gemacht
Bitte warten ..
Mitglied: Womanizer
06.07.2007 um 14:54 Uhr
Bin grad bissl daneben, aber liegt glaub ich daran das ich schon seit 5 Uhr am arbeiten bin x_X

D.h., soweit ich das richtig verstanden habe, muss die datei binda.txt ja vorher auf den Laufwerken angelegt sein. DA diese batch datei später auf ca. 100 Clients laufen soll, ist das natürlich Käse die vorher manuell anzulegen.

Per Script anlegen bringt meiner Meinung nach auch nichts, da ja auf Multimedia Karten und USB Sticks geschrieben werden kann. Die befehle sollen aber nur auf lokalen Festplatten ausgeführt werden.

Gruss, André
Bitte warten ..
Mitglied: talkinghands
06.07.2007 um 15:39 Uhr
vielleicht hilft dir das ja weiter
fsutil fsinfo drivetype C:
Gruss, TH
Bitte warten ..
Mitglied: Womanizer
09.07.2007 um 14:48 Uhr
mmmh.... ok,

da zeigt der mir dann ja an, obs ein lokaler Datenträger ist oder CD....

jetzt kommt mein problem mit Schleifen und Abfragen... Kann mir da jmd verraten wie ich damit anfangen soll? Bin nicht wirklich so der crack mit Abfragen...

Danke schonmal im voraus.

Gruss,
André
Bitte warten ..
Mitglied: Biber
09.07.2007 um 20:40 Uhr
Moin Womanizer,

wenn wir bei dem Beispiel mit fsutil.exe bleiben, dann könnte die Strategie wie folgt aussehen:
  • alle lokalen Platten sind im (deutschen) Fsutil-Jargon erkennbar als "Eingebautes Laufwerk"
  • diese Laufwerksbuchstaben in eine temporäre Text-Datei schreiben.
  • diese Textdatei als Input für eine FOR /F... IN...DO..-Anweisung mit Deinen IF EXIST-Anweisungen nehmen.
  • aufräumen.

Im Batch:
01.
@echo off % Setlocal 
02.
Set fixLWs=%temp%\FixLWs.txt 
03.
call :clean 
04.
for /f %%a in ('fsutil fsinfo drives^|find ":"') do fsutil fsinfo drivetype %%a |find "Eingebaut">>%fixlws% 
05.
REM Alle "Eingebauten" Laufwerken stehen als Zeilen "C:\ - Eingebautes Laufwerk" in %fixLWs% 
06.
 
07.
For /f %%i in (%fixLWs%) do ( 
08.
      REM ...whatever, z.B so was: 
09.
      If Exist %%i\config\myfile.xyz echo KillRoy was here>>%%i\config\myfile.xyz 
10.
      REM .... oder etwas sinnvolles... 
11.
12.
:: bei Bedarf weiteres Gebätsche... 
13.
 
14.
:clean 
15.
IF Exist %fixLws% del %fixLws% 
16.
goto :eof
Aber Vorsicht: auch eventuelle SUBST-Drives werden von FsUtil als "Eingebaute Laufwerke" ausgegeben.

Irgendwo in diesem Forum gibt es ein oder zwei Beiträge, in denen mit einer gefühlten Handvoll VBScript-Zeilen über den DriveType die "echten" FixedDrives (Drivetype =2 ) ermittelt werden.

Die vermutlich umfassendste und informativste Diskussion dazu findest Du in onegassees Beitrag Installationspfad einer Anwendung suchen auf unbekanntem PC.

Grüße
Biber
Bitte warten ..
Mitglied: Womanizer
10.07.2007 um 15:22 Uhr
Hallo Biber,

schonmal Dane für deine Hilfe. Allerdings habe ich noch die ein oder andere Frage....

Also, laut deinem Beispiel wird eine txt Datei in den temp Ordner geschrieben. Danach wird gecheckt ob die laufwerke quasi Eingebaute Laufwerke sind. Wenn ja schreibt er die Laufwerke in diese Textdatei. Soweit hab ich ja nun alles verstanden....

Wenn ich jetzt zum beispiel eine datei von meinem laufwerk auf die Laufwerke schreiben möchte die in dieser Txt Datei stehen, wie bekomme ich das denn in eine IF-Abfrage hin? Also wie lese ich aus, das z.b. Laufwerk C und D dort drin stehen, und meine Datei dann nur auf diese Laufwerke kopiert werden?

Hab da bis gerade herumgedoktort, aber bekomm das irgendwie nicht hin *newbie x_X*

gruss & Dank im voraus,

André
Bitte warten ..
Mitglied: Biber
10.07.2007 um 20:19 Uhr
Moin Womenizer,

also angenommen, diese paar Folge-Zeilen von oben
01.
@echo off % Setlocal 
02.
Set fixLWs=%temp%\FixLWs.txt 
03.
call :clean 
04.
for /f %%a in ('fsutil fsinfo drives^|find ":"') do fsutil fsinfo drivetype %%a |find "Eingebaut">>%fixlws% 
05.
REM Alle "Eingebauten" Laufwerken stehen als Zeilen "C:\ - Eingebautes Laufwerk" in %fixLWs% 
06.
 
07.
 
08.
:clean 
09.
IF Exist %fixLws% del %fixLws% 
10.
goto :eof
.... erzeugen auch bei Dir eine Datei namens %temp%\FixLws.txt...
Dann steht darin z.B. folgendes :
01.
::--------snipp %temp%\FixLws.txt 
02.
C:\ - Eingebautes Laufwerk 
03.
D:\ - Eingebautes Laufwerk 
04.
E:\ - Eingebautes Laufwerk 
05.
::---------snapp %temp%\FixLws.txt
Wenn das der Fall ist...
(bitte überprüfen - wenn wir nicht soweit das gleiche Ergebnis haben, dann sind die folgenden Zeilen vergebens)...
...dann kannst Du
- in demselben Batch (siehe oben)
- oder in einem zweiten, separaten Batch
die eigentliche Aufgabe erfüllen lassen:
01.
::### mit der folgenden FOR/F-Anweisung liest Du nacheinander  
02.
::### die Laufwerksbuchstaben C:\, D:\ und E:\ aus den drei Zeilen der Textdatei aus 
03.
::### ...und zwar in die Lauf-Variable %%i .... 
04.
For /f %%i in (%fixLWs%) do ( 
05.
      REM Hier kannst Du dann Deine Datei test.txt in alle Laufwerke c:\beispiel\ordner , D:\Beispiel\ordner usw. kopieren 
06.
      If Not Exist %%i\c:\beispiel\ordner md %%i\beispiel\ordner 
07.
      COPY /Y "C:\Eigene Dateien\MeineDatei.txt" %%i\beispiel\ordner\test.txt 
08.
      REM .... oder etwas sinnvolles... 
09.
10.
::.....
Diesen FOR-Block kannst Du auch wieder an dieselbe Stelle setzen, an der im ersten Beispiel der FOR-Block steht.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch-Datei: Benutzer-Abfrage
gelöst Frage von Axel90Batch & Shell7 Kommentare

Hallo zusammen! Ich habe bei Google keine Lösung für mein Anliegen gefunden: Ich möchte in einer Batch-Datei (Login-Sequenz) eine ...

Batch & Shell
Problem mit "username" abfrage in Batch Dateien
gelöst Frage von KriAITBatch & Shell5 Kommentare

Hallo, ich habe eine Batch-Datei erstellt in der ein Ordner auf dem Desktop erstellt werden soll. Der Batch soll ...

Batch & Shell
Batch Datei soll Erstelldatum einer Datei abfragen und nur dann eine Installation starten
gelöst Frage von KayManHeyBatch & Shell9 Kommentare

Hallo Administratoren, ich habe mich nun hier registriert weil ich mit meinem Problem nicht mehr wirklich weiterkomme. Libre Office ...

Batch & Shell
Batch Programmierung IF Abfragen
gelöst Frage von PanubuBatch & Shell8 Kommentare

Hallo zusammen, ich möchte gerne einige IF-Abfragen in einer Batch programmieren, was allerdings nicht so möchte wie ich. Er ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless9 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Wieso kann ich den UPD 7000-9000 nicht freigeben?
Frage von Jayk0bRouter & Routing8 Kommentare

Router: Telekom W 723V Ports: UDP 7000-9000 Können nicht frei gegeben werden. Benutzgrund: Rocket League 7000 – 9000 UDP ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing8 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...