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 Script: Nur auf betsimmte USB Sticks kopieren

Mitglied: Sam-Razr

Sam-Razr (Level 1) - Jetzt verbinden

01.03.2007, aktualisiert 29.03.2007, 5663 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
Batch & Shell
USB-Stick mit Batch Datei erkennen
gelöst Frage von derCreeperBatch & Shell8 Kommentare

Ich habe ein Batch Programm entwickelt, welches dateien wenn ich es starte auf einen USB-Stick lädt. Alles schön und ...

Speicherkarten
USB-stick formatieren
Frage von Dave28Speicherkarten18 Kommentare

Hallo Community, ich habe folgendes Problem: Ich habe einen 8 GB USB-stick, und den habe ich bei dem Gerätemanager ...

Speicherkarten
USB Stick Kaputt?
gelöst Frage von Hajo2006Speicherkarten10 Kommentare

Hallo, also ich habe hier einen 8GB USB-Stick (USB 2.0), wenn ich den am PC oder Laptop anstecke dann ...

Festplatten, SSD, Raid
1TB USB Stick
Frage von DragonKillFestplatten, SSD, Raid25 Kommentare

Hallo, ein kleines Problem ohne zu lachen bitte :-) Hab mir aus Asien nen 1TB USB Stick bestellt(sehr kostengünstig ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 1 TagWindows 7

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 3 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 4 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 6 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
Notebook & Zubehör
Hardware defekt ?
Frage von mausemuckelNotebook & Zubehör13 Kommentare

Hallo und ein schönes Osterfest an alle. Ich benötige mal euer Schwarm wissen. Ich habe hier ein Notebook Lenovo ...

LAN, WAN, Wireless
Lancom und VLANs
Frage von TimmheLAN, WAN, Wireless11 Kommentare

Hallo an alle ich habe momentan ein sehr merkwürdiges problem bei dem ich nicht mehr weiter komme und hoffe ...

Virtualisierung
Unix System virtualisieren
Frage von BananenmeisterVirtualisierung10 Kommentare

Hallo Zusammen, Ich möchte gerne eine Virtualisierungs-Software auf meinem kleinen ML Server installieren um einige Unix Systeme zu virtualisieren. ...

Peripheriegeräte
Empfehlung für Home-USV (ca. 450VA 270W) Irgendwelche Osterpreisaktionen bekannt?
Frage von Server-NutzerPeripheriegeräte9 Kommentare

Hallo und schöne Ostern. Meine private Heim-USV Yunto Q450 (ca. 450VA 270W) hat sich nach vielen Jahren ohne Probleme ...