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

Eine Datei via Batch o.ä. an alle angeschlossenen Wechseldatenträger senden

Frage Entwicklung Batch & Shell

Mitglied: jap-81

jap-81 (Level 1) - Jetzt verbinden

20.02.2011 um 06:47 Uhr, 5506 Aufrufe, 7 Kommentare

Guten Tag alle zusammen,

ich habe ein Problem bzw. eine Frage in der mir vieleicht hier jemand helfen kann. Ich suche eine Batch, oder vieleicht etwas ähnliches, die es mir erlaubt eine beliebige Datei auf alle am Rechner angeschlossenen Wechseldatenträger gleichzeitig zu senden.
Mein Porblem ist, dass ich keine Ahnung von Batch habe.

Die Porblemstellung ist folgende. EIn Sportverein stellt bestimmte Videodateien, Dateien von Spielen anderer Vereine, seinen Spielerinnen zur Anschauungszwecken zur Verfügung. Nun müssen derzeit die Dateien in zeitaufwendiger Kleinarbeit einzeln auf USB Sticks geladen werden.
Der Gedange ist alle oder zumindest einen grossen Teil der Sticks an den Rechner anzuschliessen und dann via Batch die Datei gleichzeitig an alle zu senden. Sicher leidet die Geschwindigkeit darunter aber man kann ja wärenddessen andere Sachen erledigen und muss nicht immer Stick rein Stick raus spielen.


Vieleicht hat ja jemand hier eine helfande Idee


Vielen Dank fürs lesen

und einen entspannten Sonntag
Mitglied: 76109
20.02.2011 um 12:23 Uhr
Hallo jap-81!

Dieses VB-Script (*.vbs) würde zunächst mal nacheinander die Laufwerksbuchstaben der Wechseldatenträger in einer MsgBox ausgeben
01.
    Const Removable = 1 
02.
 
03.
    Dim Fso, Drive 
04.
     
05.
    Set Fso = CreateObject("Scripting.FileSystemObject") 
06.
     
07.
    For Each Drive In Fso.Drives 
08.
        If Drive.DriveType = Removable And Drive.IsReady = True Then 
09.
            MsgBox Drive.DriveLetter     
10.
        End If 
11.
    Next
wobei alle Wechseldatenträger erkannt werden, also z.B. auch Speicherkarten in Card-Reader... Um dies gegebenenfalls auszuschließen, könnte noch das FileSystem der Sticks z.B. "FAT32" oder die Größe des Speicherplatzes mit einbezogen werden?

Gruß Dieter
Bitte warten ..
Mitglied: 90957
20.02.2011 um 12:50 Uhr
Leider lassen sich auch USB-Sticks problemlos auf NTFS Formatieren...

Soll diese Batch-Datei viele Dateien Verschieben?

Also eine vollständige automatisierung halte ich für nur sehr schwer möglich.
Aber nach anfangseinstellungen sollte das Kopieren problemlos automatisiert werden können.
Wenn die Datei auf der Festplatte liegt, sollten sich die Geschwindigkeitseinbußen eigentlich im
Rahmen halten.

Ich schau mal was sich da machen lässt...

Der Ansatz von Dieter, die Wechseldatenträger über vbs zu ermitteln ist schon mal gar nicht übel...
Was ist das eigentlich für ein Rechner mit so vielen USB-Ports?
Oder habt ihr nur einen großen USB-Hub?

Gruß
BluBb_mADe

*Edit
Ein sinnvollter Tipp wäre vllt auch noch GCopy
Bitte warten ..
Mitglied: NetWolf
20.02.2011 um 12:59 Uhr
Hallo,

klar gibt es da hundert Ideen/Möglichkeiten, z.B.:

- eine Homepage von der sich die Mitglieder die Dateien downloaden können
- Free File Hoster (eine "Festplatte" im Internet) von der sich die Mitglieder die Dateien downloaden können (z.B. http:\\www.wuala.com)
- ein FTP-Server
- die Dateien erst mal zu einem Paket packen (ZIP). Also ein selbstentpackendes Archiv erstellen.
- mit einem Synchronisierungsprogramm die Daten kopieren

Gruß
Wolfgang
Bitte warten ..
Mitglied: jap-81
20.02.2011 um 13:00 Uhr
Hi,

es wird ein bzw mehrere USB Hubs verwendet. Es handelt sich dabei immer nur um ein File (Videodatei).
Vieleicht sollte ich noch erwähnen das es sich um Windows7 handelt.
Bitte warten ..
Mitglied: Friemler
20.02.2011 um 14:00 Uhr
Hallo jap-81,

versuche mal Dieses Skript:
01.
@echo off 
02.
 
03.
setlocal enabledelayedexpansion 
04.
 
05.
set "DestDir=Test" 
06.
set "WithLog=1" 
07.
 
08.
 
09.
set "SrcFiles=%*" 
10.
set "BlockBegin=0" 
11.
set "ValidDrive=0" 
12.
 
13.
wmic /output:"%Temp%\WMICOut.txt" logicaldisk where description='Wechseldatenträger' get Name,FileSystem /value 
14.
 
15.
for /f "tokens=1,2 delims==" %%i in ('type "%Temp%\WMICOut.txt"') do ( 
16.
  if /i "%%i" equ "FileSystem" set "BlockBegin=1" 
17.
  if "!BlockBegin!" equ "1" if "%%j" neq "" set "ValidDrive=1" 
18.
 
19.
  if "!BlockBegin!" equ "0" if "!ValidDrive!" equ "1" ( 
20.
    set "Drive=%%j" 
21.
    call :ProcessDrive 
22.
    set "ValidDrive=0" 
23.
24.
 
25.
  set "BlockBegin=0" 
26.
27.
 
28.
del "%Temp%\WMICOut.txt" 
29.
 
30.
if "%WithLog%" equ "1" pause 
31.
exit /b 
32.
 
33.
 
34.
 
35.
:ProcessDrive 
36.
  setlocal disabledelayedexpansion 
37.
 
38.
  if not exist "%Drive%\%DestDir%" ( 
39.
    md "%Drive%\%DestDir%" 
40.
41.
 
42.
  for %%f in (%SrcFiles%) do ( 
43.
    if "%WithLog%" equ "1" echo Kopiere %%~f nach %Drive%\%DestDir% ... 
44.
    if "%WithLog%" equ "1" (copy "%%~f" "%Drive%\%DestDir%") else (copy "%%~f" "%Drive%\%DestDir%" > NUL) 
45.
    if "%WithLog%" equ "1" echo. 
46.
47.
 
48.
  if "%WithLog%" equ "1" echo. 
49.
 
50.
  endlocal 
51.
exit /b
Die Quelldateien können mit der Maus markiert werden und dann per Drag & Drop auf das Icon des obigen Batchfiles gezogen werden.

In Zeile 5 kann ein Zielordner angegeben werden, in dem die Dateien auf den Sticks abgelegt werden. Wenn dieser nicht existiert, wir er in Zeile 39 neu angelegt.

Wenn der Variablen WithLog in Zeile 6 der Wert 1 zugewiesen wird, so wie in obigem Code, werden die Kopiervorgänge auf dem Bildschirm protokolliert und nachdem die Dateien auf alle USB-Sticks kopiert wurden, muss wegen dem Pause-Befehl in Zeile 30 eine Taste gedrückt werden, um das Skript zu beenden. Wenn WithLog in Zeile 6 der Wert 0 (oder etwas anderes) zugewiesen wird, erfolgt keine Bildschirmausgabe und das Skript wird auch von selbst beendet.

Der WMIC-Befehl in Zeile 13 ermittelt alle am Rechner angeschlossenen Wechseldatenträger. Wie User didi1951 schon bemerkt hat, können darunter auch die Speicherkarten in Kartenlesern oder auch USB-Festplatten fallen. USB-Festplatten also vor der Kopieraktion abklemmen und aus Kartenlesern die Speicherkarten herausnehmen. In der FOR-Schleife (Zeile 15-26) wird nämlich nur dann das Unterprogramm ProcessDrive (in dem die Dateien kopiert werden) aufgerufen, wenn ein Wechseldatenträger mit formatiertem Speichermedium gefunden wird.

[EDIT]
Aufgrund von Verbesserungsvorschlägen von bastla habe ich das Skript nochmal geändert, siehe mein nächstes Posting.
[/EDIT]

Gruß
Friemler
Bitte warten ..
Mitglied: bastla
20.02.2011 um 14:27 Uhr
@Friemler
Einige Anmerkungen:

Auch wenn es hier ziemlich egal sein dürfte - nur für die Verwendung der Schalter "BlockBegin" und "ValidDrive" braucht's keine "delayedExpansion" - wenn Du anstelle von "1" einen beliebigen Wert zuweist und anstelle von "0" gar nix, kannst Du einfach mit "if defined" den Zustand abfragen.
Die Verwendung von "wmic" setzt Admin-Rechte voraus - daher würde ich eher (temporäres) VBScript verwenden - zB
For Each D In CreateObject("Scripting.FileSystemObject").Drives:If D.DriveType=1 And D.IsReady Then:WScript.Echo D.DriveLetter:End If:Next
(Achtung - liefert nur den Buchstaben, keinen ":")

[Edit] Der Ordnung halber fehlendes Leerzeichen nach "1" ergänzt [/Edit]
Was alle Vorschläge bisher nicht berücksichtigen ist der Wunsch,
die Datei gleichzeitig an alle zu senden
Dazu könnten dann eigentlich nur mehrere Kopiervorgänge (zB durch Starten eines weiteren Batches mit Übergabeparametern "Quelle" und - an den jeweiligen Laufwerksbuchstaben angepasst - "Ziel") parallel gestartet werden ...
Einen hab ich noch :
Um die "wmic"-Ausgabe (falls Du dabei bleiben willst) unmittelbar in einer "for"-Schleife zu verwerten, könntest Du das auf folgender Basis versuchen:
for /f "skip=2 tokens=2-3 delims=," %%i in ('"wmic logicaldisk where description='Wechseldatenträger' get Name,FileSystem /value /format:csv"') do if "%%j" neq "" echo %%i
Grüße
bastla
Bitte warten ..
Mitglied: Friemler
20.02.2011 um 14:55 Uhr
Hi bastla,

ich habe das Skript aufgrund Deiner durchaus sinnvollen Verbesserungsvorschläge nochmal geändert. Wobei ich aber glaube, dass das "gleichzeitige kopieren" der Dateien nicht wörtlich gemeint war.

Dein Vorschlag, die Ausgabe von WMIC im CSV-Format auszuwerten funktioniert nur, wenn man das Gleichheitszeichen der WHERE-Klausel und das Komma zwischen FileSystem und Name beim GET mit ^ escaped und natürlich %%i und %%j vertauscht . Aber selbst dann kommt es wieder zu Problemen wegen der fehlerhaften Ausgabe von WMIC im ASCII-Mode unter Windows 7, hatten wir letztens schonmal in diesem Thread. Deshalb die Ausgabe von WMIC am besten immer durch TYPE ausgeben lassen und diese Ausgabe auswerten.

Jetzt aber das Skript:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
set "DestDir=Test" 
06.
set "WithLog=1" 
07.
 
08.
set "SrcFiles=%*" 
09.
set "VBScript=%Temp%\GetDriveLetters.vbs" 
10.
 
11.
> "%VBScript%" echo For Each D In CreateObject("Scripting.FileSystemObject").Drives 
12.
>>"%VBScript%" echo   If D.DriveType=1 And D.IsReady Then 
13.
>>"%VBScript%" echo     WScript.Echo D.DriveLetter 
14.
>>"%VBScript%" echo   End If 
15.
>>"%VBScript%" echo Next 
16.
 
17.
for /f %%i in ('cscript /nologo "%VBScript%"') do ( 
18.
  set "Drive=%%i:" 
19.
  call :ProcessDrive 
20.
21.
 
22.
del "%VBScript%" 
23.
 
24.
if "%WithLog%" equ "1" pause 
25.
exit /b 
26.
 
27.
 
28.
 
29.
:ProcessDrive 
30.
  if not exist "%Drive%\%DestDir%" ( 
31.
    md "%Drive%\%DestDir%" 
32.
33.
 
34.
  for %%f in (%SrcFiles%) do ( 
35.
    if "%WithLog%" equ "1" echo Kopiere %%~f nach %Drive%\%DestDir% ... 
36.
    if "%WithLog%" equ "1" (copy "%%~f" "%Drive%\%DestDir%") else (copy "%%~f" "%Drive%\%DestDir%" > NUL) 
37.
    if "%WithLog%" equ "1" echo. 
38.
39.
 
40.
  if "%WithLog%" equ "1" echo. 
41.
exit /b
Gruß
Friemler
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
VPN per Batch o.ä. einrichten
gelöst Frage von peterpaBatch & Shell3 Kommentare

Hallo Welt! ;) Ich möchte per Skript eine VPN-Verbindung, welche mit IPsec gesichert ist einrichten, aufbauen und möglichst auch ...

Batch & Shell
Laufwerksgröße von Wechseldatenträger in GB anzeigen
gelöst Frage von kaeptenbleiBatch & Shell2 Kommentare

Guten Tag zusammen, ich muss ein paar hundert SD-Karten (auch mal USB-Sticks) nach Größe sortieren. Mehrere SD-Karten in die ...

Batch & Shell
Script o.ä. für Bestätigungslog
gelöst Frage von markus26Batch & Shell7 Kommentare

Hallo allesamt einmal, ganz neu hier, also auch ein Frischling mit allen Komponenten (script, vbs, ) Ich möchte ein ...

Firewall
Proxy Firewall o.Ä. installieren?
Frage von SchottiFirewall4 Kommentare

Hallo ich bin leider noch sehr neu auf diesem Gebiet, also bitte habt Nachsicht mit mir. Ich suche nach ...

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 1 StundeLinux7 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing13 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Microsoft Office
Outlook Cache Mode Frage
Frage von GwaihirMicrosoft Office11 Kommentare

Hallo zusammen, bin gerade neu in der Firma und lerne hier einige neue Dinge kennen. Zum Beispiel, dass die ...

Windows Server
Windows Store Apps
gelöst Frage von PeterleBWindows Server11 Kommentare

Gibt es einen Weg, auf Windows Server 2016 Windows Store Apps wie zum Beispiel die HP Smart App zu ...