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, 5501 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Speicherkarten
Tool zum neuformatieren eines USB-Sticks (6)

Frage von flyingKangaroo zum Thema Speicherkarten ...

Speicherkarten
gelöst Verschlüsselte USB-Sticks (19)

Frage von rudeboy zum Thema Speicherkarten ...

Batch & Shell
Batch Script Editor - Programmvorstellung des Entwicklers (16)

Tipp von wowItsDoge zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...