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

Batch Script: Nur auf betsimmte USB Sticks kopieren

Frage Hardware Speicherkarten

Mitglied: Sam-Razr

Sam-Razr (Level 1) - Jetzt verbinden

01.03.2007, aktualisiert 29.03.2007, 5517 Aufrufe, 17 Kommentare

Folgende Situation:

Habben in der Lateinklasse 30 Schüler, jeder mit USB-Stick und einen riesen HUB.


Suche ein solches Script, bzw. erweiterung für eins ganz unten:

*Kopiert den Ordner "C:\Latein" auf bestimmte Ordner bestimmter USB Sticks
*evtl. MSGBOX: Kopieren fertig

da laufwerksbuchsatben ja nie gleichbleiben müsste warscheinlich irgendeine signatur/ID auf dem stiock ausgelesen werden

wenns geht das ganze auch noch andersrum, d.h. alles aus den Ordner "Latein2" auf den sticks in den Ordner "C:Latein2"


Kann mir wer helfen?
Mitglied: Dynadrate
01.03.2007 um 17:28 Uhr
Vielleicht hilft es dir, wenn die Laufwerksbuchstaben ein bissl gebändigt würden: USBDLM
Bitte warten ..
Mitglied: Xerebus
01.03.2007 um 18:21 Uhr
Textdateien auf die Sticks USB_Stick.txt und per Batch auf die abfragen.

if exist e:\USB_Stick.txt copy ....
if exist f:\USB_Stick.txt copy ....
if exist g:\USB_Stick.txt copy ....
if exist h:\USB_Stick.txt copy ....
if exist i:\USB_Stick.txt copy ....
Da funktioniert auch mit unterschiedlichen txt Dateien und dardurch unterschiedlichen copybefehlen.
Bitte warten ..
Mitglied: Sam-Razr
01.03.2007 um 18:59 Uhr
Textdateien auf die Sticks USB_Stick.txt und
per Batch auf die abfragen.

if exist e:\USB_Stick.txt copy ....
if exist f:\USB_Stick.txt copy ....
if exist g:\USB_Stick.txt copy ....
if exist h:\USB_Stick.txt copy ....
if exist i:\USB_Stick.txt copy ....
Da funktioniert auch mit unterschiedlichen
txt Dateien und dardurch unterschiedlichen
copybefehlen.


Habe hier folgendes script:

Set WshShell = Wscript.CreateObject("Wscript.Shell")
Return = WshShell.Run("cmd /c xcopy /Y /E /C /Q /I /R C:\Latein ""J:\Latein""",,true)
MsgBox "Kopieren beendet!", vbInformation


Wie soll ich da die abfrage einbauen?

so:

Set WshShell = Wscript.CreateObject("Wscript.Shell")
Return = WshShell.Run("cmd /c xcopy /Y /E /C /Q /I /R /if exist e:\USB_Stick.txt copy C:/Latein ""J:\Latein""",,true)
MsgBox "Kopieren beendet!", vbInformation

????

Sorry, aber bin da noch nicht so weit bei dem Thema
Bitte warten ..
Mitglied: Sam-Razr
05.03.2007 um 16:03 Uhr
Bitte ich brauche dazu hilfe! Wie binde ic das jetzt ein?

Set WshShell = Wscript.CreateObject("Wscript.Shell")
if exist "K:\usb_stick_für_kopieren.sig" Then WshShell.Run("cmd /c xcopy /Y /E /C /Q /I /R C:\Latein ""K:\Latein""",,true)
MsgBox "Kopieren beendet!", vbInformation

so klappts net! BITTE! Ich brauchs dringend!

Sam
Bitte warten ..
Mitglied: Dani
25.03.2007 um 12:52 Uhr
Hi,
dein Problem noch aktuell?!


Grüße
Dani
Bitte warten ..
Mitglied: Sam-Razr
25.03.2007 um 16:26 Uhr
Hi,
dein Problem noch aktuell?!


Grüße
Dani

Ja. Wäre sehr nett.

Sam
Bitte warten ..
Mitglied: Dani
25.03.2007 um 17:13 Uhr
Hi,
also zuerst auf allen Sticks folgende Dateien anlegen:
- 1 Datei. Der Name der Datei soll vorname_nachname.xyz sein
- 1 Datei. Diese Datei soll auf jeden Stick mit dem gleichen Namen (aaa_23424.xyz - Vorraussetzung!!!).

Eine Datei ist für das kopieren zum Stick nötig und die andere für das kopieren von allen angeschlossenen Sticks. Durch das aaa... muss sein, sonst steht die Datei mit dem Namen nicht zu letzt da. Die Endung ist so gewollt!!

Hier mal die v0.1:
01.
@echo off & setlocal 
02.
 
03.
::Variablen 
04.
set from_usb=aaa_23424..xyz 
05.
 
06.
 
07.
echo Abfrage 
08.
echo 1 - Datei auf einen Stick kopieren 
09.
echo 2 - Dateien vom Stick auf Festplatten kopieren 
10.
echo. 
11.
set /p abschnitt=Menue:  
12.
echo. 
13.
 
14.
 
15.
if /i "%abschnitt%" == "1" ( 
16.
	::Frage nach dem Schülername - Zwischen Vorname und NAchname muss ein _, 
17.
	::sonst kann der nicht nachschauen, welches Laufwerk zutrifft 
18.
	set /p name=Schueler (vorname_nachname):  
19.
 
20.
	for /D %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do ( 
21.
		REM Überprüft, ob Laufwerk vorhanden 
22.
		if /i exist %%a: ( 
23.
			::Überpürft, ob die vorname_nachname Datei vorhanden ist 
24.
			if /i exist "%%a:\%name%.xyz" ( 
25.
				::Kopiert die Dateien von C auf den Stick 
26.
				xcopy /e /v /c /i /y "C:\Latein" "%%a:\latein" 
27.
28.
29.
30.
31.
 
32.
if /i "%abschnitt%" == "2" ( 
33.
	for /l %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do ( 
34.
		REM Überprüft, ob Laufwerk vorhanden 
35.
		if /i exist %%a: ( 
36.
			::Überpürft, ob die aaa_ - DATEI vorhanden ist 
37.
			if /i exist "%%a:\%from_usb%.xyz" ( 
38.
				::Liest den Namen der Schülers aus 
39.
				for /f "delmis=. tokens=1" %%b in ('dir /b "%%a:\*.xyz"') do ( 
40.
					::Erstellt einen Ordner auf C: mit dem Namen des Schülers 
41.
					if not exist "C:\Latein2\%%b" mkdir "C:\Latein2\%%b" 
42.
					 
43.
					::Kopiert alle Dateien aus dem Ordner und fügt diese auf C:latein\name ein 
44.
					xcopy /e /v /c /i /y "%%a:\latein2" "C:\Latein2\%%b" 
45.
				)				 
46.
47.
48.
49.
50.
echo Fertig! 
51.
pause
Ist leider ungetestet. Aber du wirst die nicht vorhandenen Fehler bestimmt selber lösen können. Ansonsten einfach wieder melden. *gg*


Grüße
Dani
Bitte warten ..
Mitglied: Sam-Razr
25.03.2007 um 17:53 Uhr
Danke schonmal habe aber immer noch ein Problem

Ich hab die Datei ein bisschen umgebaut (die dateien heissen anders (das müsste doch gehen))
also:
- 1. Datei: vorname_nachname.sig (Diese Datei wird individuell angepasst)
- 2. Datei: aaa_Signatur_Schülerstick.sig (Diese datei wird einfach auf jeden Stick kopiert)
So sieht das Script jetzt aus:

@echo off & setlocal

::Variablen
set from_usb=aaa_Signatur_Schülerstick.sig

echo Abfrage
echo 1 - Datei auf einen Stick kopieren
echo 2 - Dateien vom Stick auf Festplatten kopieren
echo.
set /p abschnitt=Menue:
echo.

if /i "%abschnitt%" == "1" (
::Frage nach dem Schülername - Zwischen Vorname und NAchname muss ein _,
::sonst kann der nicht nachschauen, welches Laufwerk zutrifft, vorname nachname werden individuell ersetzt
set /p name=Schueler (vorname_nachname):

for /D %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
REM Überprüft, ob Laufwerk vorhanden
if /i exist %%a: (
::Überpürft, ob die vorname_nachname Datei vorhanden ist
if /i exist "%%a:\%vorname_nachname%.sig" (
::Kopiert die Dateien von C auf den Stick
xcopy /e /v /c /i /y "C:\Latein" "%%a:\Latein"
)
)
)
)

if /i "%abschnitt%" == "2" (
for /l %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
REM Überprüft, ob Laufwerk vorhanden
if /i exist %%a: (
::Überpürft, ob die aaa_ - DATEI vorhanden ist
if /i exist "%%a:\%from_usb%.xyz" (
::Liest den Namen der Schülers aus
for /f "delmis=. tokens=1" %%b in ('dir /b "%%a:\*.xyz"') do (
::Erstellt einen Ordner auf C: mit dem Namen des Schülers
if not exist "C:\Latein2\%%b" mkdir "C:\Latein2\%%b"

::Kopiert alle Dateien aus dem Ordner und fügt diese auf C:latein\name ein
xcopy /e /v /c /i /y "%%a:\latein2" "C:\Latein2\%%b"
)
)
)
)
)
echo Fertig!
pause



Wo liegt der Fehler? Ich speicher das als xy.bat und starte es. dann steht da halt

Abfrage

1 - Blabla
2 - Blabla

Menue


Dann tipp ich eins 1 und drüc eingabetaste.
das fenster schliesst sich und nichts passiert. Irgendwie hab ich das gefühl ein ganz blöder fehler.wäre nett wenn du mir dabei noch helfen könntest

Sam
Bitte warten ..
Mitglied: Dani
25.03.2007 um 18:01 Uhr
Hi,
also entferne mal das "i" => "if /i "%abschnitt%" == "1" ". Warum das nicht geht, weiß ich grad auch nicht.


Grüße
Dani
Bitte warten ..
Mitglied: Sam-Razr
25.03.2007 um 18:34 Uhr
Hierbei

@echo off & setlocal

::Variablen
set from_usb=aaa_Signatur_Schülerstick.sig

echo Abfrage
echo 1 - Datei auf einen Stick kopieren
echo 2 - Dateien vom Stick auf Festplatten kopieren
echo.
set /p abschnitt=Menue:
echo.

if/ "%abschnitt%" == "1" (
::Frage nach dem Schülername - Zwischen Vorname und NAchname muss ein _,
::sonst kann der nicht nachschauen, welches Laufwerk zutrifft, vorname nachname werden individuell ersetzt
set /p name=Schueler (samuel_straka):

for /D %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
REM Überprüft, ob Laufwerk vorhanden
if/ exist %%a: (
::Überpürft, ob die vorname_nachname Datei vorhanden ist
if /i exist "%%a:\%samuel_straka.sig" (
::Kopiert die Dateien von C auf den Stick
xcopy /e /v /c /i /y "C:\Latein" "%%a:\Latein"
)
)
)
)

if/ "%abschnitt%" == "2" (
for /l %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
REM Überprüft, ob Laufwerk vorhanden
if/ exist %%a: (
::Überpürft, ob die aaa_ - DATEI vorhanden ist
if/ exist "%%a:\%from_usb%.sig" (
::Liest den Namen der Schülers aus
for /f "delmis=. tokens=1" %%b in ('dir /b "%%a:\*.xyz"') do (
::Erstellt einen Ordner auf C: mit dem Namen des Schülers
if not exist "C:\Latein2\%%b" mkdir "C:\Latein2\%%b"

::Kopiert alle Dateien aus dem Ordner und fügt diese auf C:latein\name ein
xcopy /e /v /c /i /y "%%a:\latein2" "C:\Latein2\%%b"
)
)
)
)
)
echo Fertig!
pause


kommt der Fehler:

der Befehl if konnte nicht gefunden werden
Bitte warten ..
Mitglied: Biber
25.03.2007 um 22:08 Uhr
Moin Sam-Razr und Dani,

ein paar kleine kosmetische Änderungen habe ich eingebaut.

Sieht jetzt so aus:
01.
@echo off & setlocal 
02.
::Variablen 
03.
set from_usb=aaa_Signatur_Schülerstick.sig 
04.
:again 
05.
echo Abfrage 
06.
echo 0 - Batch beenden, keine Aktion  
07.
echo 1 - Datei auf einen Stick kopieren 
08.
echo 2 - Dateien vom Stick auf Festplatten kopieren 
09.
echo. 
10.
set /p abschnitt=Menue:  
11.
echo. 
12.
if "%abschnitt%" LSS "0" if "%abschnitt%" GEQ "2" goto :again  
13.
If %abschnitt%=="0" goto :eof 
14.
goto :Abschnitt%abschnitt% 
15.
 
16.
:Abschnitt1 
17.
REM ---if /i "%abschnitt%" == "1" ( 
18.
::Frage nach dem Schülername - Zwischen Vorname und NAchname muss ein _, 
19.
::sonst kann der nicht nachschauen, welches Laufwerk zutrifft, vorname nachname werden individuell ersetzt 
20.
set /p name=Schueler (vorname_nachname): 
21.
 
22.
for %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do ( 
23.
  REM Überprüft, ob Laufwerk vorhanden 
24.
  REM -- if /i exist %%a: ( 
25.
  REM ::Überprüft, ob die vorname_nachname Datei vorhanden ist 
26.
   Dir %%a: 2>&1|find "nicht bereit" >nul || if /i exist "%%a:\%name%.sig" ( 
27.
     REM Kopiert die Dateien von C auf den Stick 
28.
     xcopy /e /v /c /i /y "C:\Latein" "%%a:\Latein" 
29.
30.
31.
goto :EndOfWork 
32.
 
33.
:Abschnitt2 
34.
REM ---if /i "%abschnitt%" == "2" ( 
35.
for %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do ( 
36.
   Dir %%a: 2>&1|find "nicht bereit" >nul || if exist "%%a:\%from_usb%" ( 
37.
       REM Liest den Namen der Schülers aus 
38.
       for /f "delims=. tokens=1" %%b in ('dir /b "%%a:\%from_usb"') do ( 
39.
          REM Erstellt einen Ordner auf C: mit dem Namen des Schülers 
40.
          if not exist "C:\Latein2\%%b" mkdir "C:\Latein2\%%b" 
41.
 
42.
           REM Kopiert alle Dateien aus dem Ordner und fügt diese auf C:latein\name ein 
43.
           xcopy /e /v /c /i /y "%%a:\latein2" "C:\Latein2\%%b" 
44.
           )  
45.
46.
47.
48.
 
49.
:endOfWork 
50.
echo Fertig! 
51.
pause
TODO's:
--> unbedingt die Liste der in Frage kommenden USB-Laufwerksbuchstaben einschränken.
Von A: bis Z: ist (egal auf welchem Rechner) Dönekens.
--> Unbedingt noch eine Meldung zum Unterscheiden von "es wurde etwas" und "es wurde nichts" kopiert. Nach dem Xcopy.

Gruss
Biber
Bitte warten ..
Mitglied: Sam-Razr
25.03.2007 um 22:15 Uhr
Danke, das is schonmal nette veränderung! :great:
Bitte warten ..
Mitglied: Dani
28.03.2007 um 21:41 Uhr
G' Abend,
wie ist dein Status bei deinem Problem?!


Grüße
Dani
Bitte warten ..
Mitglied: Sam-Razr
28.03.2007 um 23:36 Uhr
Momentan ganz gut, Am HeimPC mit 2 Sticks hats geklappt. Nach den ferien müssen wir das ma in groß in der achule testen
Bitte warten ..
Mitglied: Biber
29.03.2007 um 00:23 Uhr
Moin Sam-Razr und Dani,

wenn du magst, Sam-Razr, dann poste doch mal den überarbeiteten Stand.
Dann machen wir noch eine gemeinschaftliche Vier(zig)-Augen-Kontrolle des Schnipsels.

Denn so ganz richtig ernsthaft hab ich damals auch keine Änderungen getestet, eher grob zusammengeharkt.

Eben ist mir jedenfalls aufgefallen, dass die Wahrscheinlichkeit, dass ein eingegebenes Zeichen sowohl kleiner Null als auch größergleich 2 ist, doch nicht gross genug ist für einen Schul-Einsatz.

Die Kiddies würden Dich für so einen Klopfer in die Schülerzeitung bringen.
Deshalb:
01.
<u>Streiche:</u> if "%abschnitt%" LSS "0" if "%abschnitt%" GEQ "2" goto :again  
02.
 
03.
<u>Setze:</u> if "%abschnitt%" LSS "0"  (goto :again ) Else if "%abschnitt%" GTR "2" goto :again 
[also: wenn %abschnitt% kleiner "0" geheZu :again andernfalls wenn %abschnitt% grösser "2" geheZu :again]

Genauer hab ich aber noch nicht nachgeschaut ... sollte ja nur einer grobe Korrektur sein.

Vom Fertigstellungsdatum des final release candidates mal abgesehen: eigentlich könntest Du die Frage aber schon auf "gelöst" setzen, oder?

Gruss Biber
Bitte warten ..
Mitglied: Sam-Razr
29.03.2007 um 10:33 Uhr
Ich bin heute ziemlich im Stress, ich kann morgen abend mal das posten.

Was meisnt du mit "auf gelöst setzten"?
Bitte warten ..
Mitglied: Biber
29.03.2007 um 12:45 Uhr
Moin Sam-Razr,
Ich bin heute ziemlich im Stress
Wir alle arbeiten mit M$-Produkten..
Zu Deiner Frage
Den Beitrag kannst Du als Beitragsersteller auf "gelöst/erledigt" setzen,
indem Du dich anmeldest und dann auf den Eröffnungsbeitrag (also die Frageselbst) gehst.
Dort den Button "Editieren" drücken, im aufgehenden Fenster kommen ein paar Kontrollkästchen.
Unter anderem "Dieser Beitrag gilt als gelöst".
Der erzeugt den grünen Haken.

Dann kann jeder andere Forumsbenutzer von weitem erkennen:
Für die Frage "Batch Skript - Nur auf bestimmte USB-Sticks kopieren" gab es mindestens einen brauchbaren Lösungsansatz.

Gruss
Biber
Bitte warten ..
Ähnliche Inhalte
Windows 7
Script zum Überschreiben eines USB Sticks (11)

Frage von ThomasKern zum Thema Windows 7 ...

Batch & Shell
gelöst Batch-Script für FTP-Zugang lässt sich nicht als Admin ausführen (5)

Frage von Bobstarlet zum Thema Batch & Shell ...

Viren und Trojaner
USB-Sticks: IBM liefert Installationsmedien mit Malware aus

Link von Kraemer zum Thema Viren und Trojaner ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (44)

Frage von sabines zum Thema Internet ...

Netzwerke
Wie erstelle ich ein Intranet (19)

Frage von Leonardnet zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Eintägige Netzwerkunterbrechung trotz Backupleitung (15)

Frage von iAmbricksta zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2012 R2 - Zugriff Verweigert bei jeglicher Tätigkeit (13)

Frage von DarkLevi zum Thema Windows Server ...