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
GELÖST

Batch zum autom. Kopieren von Daten auf Speicherkarten

Frage Entwicklung Batch & Shell

Mitglied: TheDarkLord

TheDarkLord (Level 1) - Jetzt verbinden

07.03.2009, aktualisiert 13:58 Uhr, 6163 Aufrufe, 19 Kommentare

"Verbesserungshilfe" für mein Script zum automatischen Kopieren bestimmter Dateien von Speicherkarten mittels Card Reader

Hallo,

für einen Kunden habe ich eine kleine Batch geschrieben, welche nach einstecken eines Cardreaders mit Speicherkarte (z.B. Micro-SD von Handys oder anderen Flashs von Fotoapperaten) nur ausgeführt werden braucht und dann "automatisch" alle in der Batch vorher deklarierten Dateien (z.B. jpg, bmp, 3gp und mpg) in einen in der Batch festgelegten Ordner auf der HD kopiert. Der Kunde benutzt einen Windows XP Rechner. Das Script läuft auch einwandfrei in der gleich gezeigten Version.
Es hat nur ein kleines Manko, wo ich noch keine Lösung gefunden habe - näheres dazu in Punkt 2 und eben mein Hauptanliegen, dass es eine kleine "Schönheits-OP benötigt - siehe Punkt 1.

Hier erstmal das Script:

@echo off & setlocal

set ZIELVERZEICHNIS=
IF "%ZIELVERZEICHNIS%"=="" goto HINWEIS



set ENDUNG=jpg
set VAR=E
dir %VAR%:\
IF errorlevel 1 goto F
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:F
cls
set VAR=F
dir %VAR%:\
IF errorlevel 1 goto G
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:G
cls
set VAR=G
dir %VAR%:\
IF errorlevel 1 goto H
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:H
cls
set VAR=H
dir %VAR%:\
IF errorlevel 1 goto I
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:I
cls
set VAR=I
dir %VAR%:\
IF errorlevel 1 goto J
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:J
cls
set VAR=J
dir %VAR%:\
IF errorlevel 1 goto K
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:K
cls
set VAR=K
dir %VAR%:\
IF errorlevel 1 goto E2
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%



:E2
cls
set ENDUNG=bmp
set VAR=E
dir %VAR%:\
IF errorlevel 1 goto F2
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:F2
cls
set VAR=F
dir %VAR%:\
IF errorlevel 1 goto G2
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:G2
cls
set VAR=G
dir %VAR%:\
IF errorlevel 1 goto H2
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:H2
cls
set VAR=H
dir %VAR%:\
IF errorlevel 1 goto I2
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:I2
cls
set VAR=I
dir %VAR%:\
IF errorlevel 1 goto J2
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:J2
cls
set VAR=J
dir %VAR%:\
IF errorlevel 1 goto K2
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:K2
cls
set VAR=K
dir %VAR%:\
IF errorlevel 1 goto E3
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%



:E3
cls
set ENDUNG=mpg
set VAR=E
dir %VAR%:\
IF errorlevel 1 goto F3
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:F3
cls
set VAR=F
dir %VAR%:\
IF errorlevel 1 goto G3
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:G3
cls
set VAR=G
dir %VAR%:\
IF errorlevel 1 goto H3
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:H3
cls
set VAR=H
dir %VAR%:\
IF errorlevel 1 goto I3
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:I3
cls
set VAR=I
dir %VAR%:\
IF errorlevel 1 goto J3
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:J3
cls
set VAR=J
dir %VAR%:\
IF errorlevel 1 goto K3
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%

:K3
cls
set VAR=K
dir %VAR%:\
IF errorlevel 1 goto FERTIG
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%



:FERTIG
dir %ZIELVERZEICHNIS%\%date%
IF errorlevel 1 goto FEHLER
set ANZAHL=0
FOR %%i in (%ZIELVERZEICHNIS%\%date%\*) do set /a ANZAHL+=1
if "%ANZAHL%"=="0" goto NODATA
goto ERFOLG

:NODATA
cls
echo.
echo F E H L E R
echo.
echo Keine Dateien zum kopieren gefunden!
echo.
rmdir %ZIELVERZEICHNIS%\%date%
pause
exit

:ERFOLG
cls
echo.
echo E R F O L G R E I C H
echo.
echo %ANZAHL% Datei(en) nach %ZIELVERZEICHNIS%\%date% kopiert!
echo.
pause
exit

:FEHLER
cls
echo.
echo F E H L E R
echo.
echo Keine Speicherkarte gefunden!
echo.
pause
exit

:HINWEIS
echo.
echo P R O G R A M M F E H L E R
echo.
echo Variable "ZIELVERZEICHNIS" nicht definiert!
echo.
pause
exit

Punkt 1:

Ich habe versucht, die ganzen "if errorlevel" Abfragen der einzelnen Laufwerke und Dateiendungen (in diesem Fall habe ich 3 verschiedene Dateiendungen, die bearbeitet werden) in eine einzige for-Schleife zu packen in der Art:

@echo off & setlocal


set ZIELVERZEICHNIS=
IF "%ZIELVERZEICHNIS%"=="" goto HINWEIS


FOR i%% in (jpg, bmp, 3gp) do
(
set ENDUNG=i%%
FOR j%% in (E, F, G, H, I, J, K) do
(
set VAR=j%%
dir %VAR%:\
IF errorlevel 1 goto FERTIG
cls
md "%ZIELVERZEICHNIS%\%date%"
FOR /D %%i IN (%VAR%:\) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO copy %%i\*.%ENDUNG% %ZIELVERZEICHNIS%\%date%
)
)


ab hier dann die ganzen Jump-Points Hinweis, Fertig etc pp.

Wenn ich das so mache, kommt dann beim Programmaufruf in der Eingabeaufforderung bei echo on nach der Abfrage von ZIELVERZEICHNIS sowas wie:
"%i" ist an dieser Stelle syntaktisch nicht verarbeitbar.
Meine Frage zu Punkt 1 ist also:
Wie kann ich das Programm verkürzen und alles in eine bzw zwei for-Schleifen packen, so dass ich bei Bedarf einfach nur in der Klammer der einen Schleife Laufwerksbuchstaben und in der anderen Schleife Dateiendungen hinzufügen/entfernen kann, ohne das an ganz vielen Stellen im Programm zu machen.
Nur als Beispiel: Wenn ich 8 Dateitypen kopieren lassen will, dann muss ich acht Jump-Point Verbände erstellen, also z.b. E1-K1, E2-K2, E3-K3 - E8-K8...
Das macht das Programm RIESIG und Änderungen sehr zeitaufwendig.

Punkt 2:

Ich habe ausserdem das Problem, dass ich bei ZIELVERZEICHNIS keinen Pfad mit Leerzeichen zuweisen darf, z.B. "D:\Eigene Dateien\Bilder" oder so.
Das wird dann nur bis "D:\Eigene" verarbeitet. Ich habe versucht die for-Schleife der einzelnen Kopierbefehle daraufhin umzubauen, dass das ZIELVERZEICHNIS mit Kurz-Namen benutzt wird, aber das hab ich nicht hinbekommen. Etwa so in der Art:

FOR /D %%i IN (%ZIELVERZEICHNIS%) DO (SET ShortFileOrDirName=%%~fsi)
set ZIELKURZ=%%i
und dann ZIELKURZ weiterverwenden oder so

Ich hoffe, irgendwer von euch kann mir da weiterhelfen

Mit freundlichen Grüßen
Dark
Mitglied: bastla
07.03.2009 um 15:49 Uhr
Hallo TheDarkLord und willkommen im Forum!

Vorweg zu Deiner Frage 2: Wenn Du %ZIELVERZEICHNIS% konsequent unter Anführungszeichen gesetzt verwendest, sollten enthaltene Leerzeichen kein Problem sein ...
Grundsätzlich würde ich die Reihenfolge der beiden Schleifen verändern: zunächst das/die Laufwerk/e finden, und erst dann die einzelnen Dateitypen berücksichtigen (wobei sich letzteres ohnehin zusammenfassen lässt - siehe unten).

Zum Finden der Laufwerke bietet sich ein wenig eingestreutes VBScript (vom Batch selbst erzeugt) an - die Abfrage des "DriveType" auf den Wert 1 liefert nur Buchstaben von als "austauschbar" gekennzeichneten Laufwerken, und dies auch nur, wenn sich ein Datenträger im Laufwerk befindet (Kartenleser!).

Um zusätzlich nur bestimmte Laufwerksbuchstaben zu berücksichtigen (eher ein Thema, wenn auch der Typ 2 = "feste" Laufwerke - etwa externe, aber natürlich vor allem interne Festplatten - erfasst werden sollte), ist im folgenden Batch eine Liste der zu verwendenden Buchstaben vorgegeben (so ließe sich zB C ausschließen).

Ohne "Benutzeroberfläche" sähe das dann etwa so aus:
01.
@echo off & setlocal 
02.
set "DATEN=*.jpg *.bmp *.3gp" 
03.
set "LAUFWERKE=EFGHIJK" 
04.
 
05.
set "ZIELVERZEICHNIS=Z:\SammelErgebnis" 
06.
set "DATUM=%date:~-4%-%date:~-7,2%-%date:~-10,2%" 
07.
 
08.
set "GDL=%temp%\GetDriveLetters.vbs" 
09.
>%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveType=1 Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next 
10.
 
11.
for /f %%i in ('cscript //nologo %GDL%') do ( 
12.
    echo "%LAUFWERKE%"|findstr /i %%i >nul && ( 
13.
        pushd %%i:\ 
14.
        for /f "delims=" %%a in ('dir /s /b /a-d %DATEN%') do ( 
15.
            echo %%a 
16.
            xcopy "%%a" "%ZIELVERZEICHNIS%\%DATUM%\">nul 
17.
18.
        popd 
19.
20.
)
[Edit] Da ich das Datumsformat "JJJJ-MM-TT" übersichtlicher (und leichter sortierbar) finde, habe ich die Angabe des Kopierzieles entsprechend angepasst.
Noch als Anmerkung zur Verwendung von "xcopy": Damit wird das Zielverzeichnis %DATUM% nur erstellt, wenn tatsächlich Dateien kopiert werden.
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: TheDarkLord
07.03.2009 um 17:38 Uhr
Hallo,

vielen Dank für die Begrüßung und auf jeden Fall auch für die super schnelle Antwort
Ich werd das gleich mal prüfen ^^

Mit freundlichen Grüßen
Dark
Bitte warten ..
Mitglied: TheDarkLord
07.03.2009 um 18:07 Uhr
Hey, habs getestet, aber es funktioniert nicht so richtig...
Habe eine "Benutzeroberfläche" eingebaut. Testweise habe ich jetzt C mit in die Laufwerke genommen und als Dateiendung *.bmp ausgewählt. Aber trotz das da logischerweise bmps vorhanden sind, wird nichts kopiert... könntest Du vielleicht nochmal drüber schauen, warum nicht? So siehts jetzt aus:

@echo on & setlocal

set "ZIELVERZEICHNIS=D:\Download"
set "DATEN=*.bmp"
set "LAUFWERKE=CEFGHIJK"

IF "%ZIELVERZEICHNIS%"=="" goto HINWEIS1
IF "%DATEN%"=="" goto HINWEIS2
IF "%LAUFWERKE%"=="" goto HINWEIS3

set "DATUM=%date:~-4%-%date:~-7,2%-%date:~-10,2%"
set "GDL=%temp%\GetDriveLetters.vbs"

>%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveType=1 Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next
for /f %%i in ('cscript //nologo %GDL%') do (
echo "%LAUFWERKE%"|findstr /i %%i >nul && (
pushd %%i:\
for /f "delims=" %%a in ('dir /s /b /a-d %DATEN%') do (
echo %%a
xcopy "%%a" "%ZIELVERZEICHNIS%\%DATUM%\">nul
)
popd
)
)

dir %ZIELVERZEICHNIS%\%DATUM%
IF errorlevel 1 goto FEHLER

set ANZAHL=0
for %%i in (%ZIELVERZEICHNIS%\%date%\*) do set /a ANZAHL+=1
goto ERFOLG

:ERFOLG
REM cls
echo.
echo E R F O L G R E I C H
echo.
echo %ANZAHL% Datei(en) nach %ZIELVERZEICHNIS%\%DATUM% kopiert!
echo.
pause
exit

:FEHLER
REM cls
echo.
echo F E H L E R
echo.
echo Keine Speicherkarte oder keine Dateien zum kopieren gefunden!
echo.
pause
exit

:HINWEIS1
echo.
echo P R O G R A M M F E H L E R
echo.
echo Kein Zielverzeichnis festgelegt!
echo.
pause
exit

:HINWEIS2
echo.
echo P R O G R A M M F E H L E R
echo.
echo Keine Dateitypen festgelegt!
echo.
pause
exit

:HINWEIS3
echo.
echo P R O G R A M M F E H L E R
echo.
echo Keine Laufwerke festgelegt!
echo.
pause
exit
Bitte warten ..
Mitglied: bastla
07.03.2009 um 18:13 Uhr
Hallo TheDarkLord!

Da derzeit nur "austauschbare" Datenträger erfasst werden, kann es gar nicht sein, dass von der Festplatte C: kopiert wird - mit einem USB-Stick solltest Du aber testen können...

Um zu prüfen, welche Laufwerksbuchstaben verarbeitet werden, kannst Du zwischen Zeile 11 und 12 ein "echo %%i" einfügen.

Falls Du auch Festplatten einbeziehen willst, ersetze die Zeile 9 durch
>%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveType^<=2 Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next 
Grüße
bastla

P.S.: Bitte nutze zum Posten von Batches die Code-Formatierung ...
Bitte warten ..
Mitglied: TheDarkLord
08.03.2009 um 02:10 Uhr
Aah SUPER, vielen Dank bastla, funktioniert klasse!
In meinem alles-nacheinander-Script hatte ich noch die Möglichkeit gehabt, auf den Laufwerken das Vorhanden sein einer Datei zu überprüfen, z.b. die Datei "abfrage" um automatisch einen bestimmten USB-Stick auszuschliessen, der auch angesteckt ist.
Das hatte ich gelöst mit:
01.
dir %LAUFWERKE%:\abfrage 
02.
if errorlevel=1 
03.
hier die copy-Geschichte
Also wenn die Datei nicht vorhanden ist, macht er den copy-Krams, ansonsten springt er halt zum nächsten Laufwerk. Nur hab ich bei dem VB-Script jetzt KEINE Ahnung, wie bzw wo ich das jetzt noch einbauen kann
Wenn DAS auch noch funktioniert, dann läuft mein Script perfekt und genauso, wie ich es haben wollte. Ausser vielleicht, dass es die Ausgabe: "Keine Dateien zum kopieren vorhanden" nicht mehr gibt, weil ja gar kein Ordner erstellt wird, wenn nichts zum kopieren da ist. Ich hatte ja einfach geprüft, ob in dem Ordner was drin ist und wenn er leer war den Satz ausgegeben und den Ordner wieder gelöscht... Aber auch das weiss ich nun mit dem VB nicht mehr zu realisieren

Mit freundlichen Grüßen
Dark
Bitte warten ..
Mitglied: bastla
08.03.2009 um 10:58 Uhr
Hallo TheDarkLord!

Das VBScript hat nur einen Zweck: Es liefert die Buchstaben der derzeit verfügbaren Laufwerke (als %%i in der Schleife) - den ganzen Rest erledigt weiterhin der Batch. Um also bei Vorhandensein einer bestimmten Datei die Verarbeitung zu überspringen, könnte so aussehen:
01.
@echo off & setlocal 
02.
set "DATEN=*.jpg *.bmp *.3gp" 
03.
set "LAUFWERKE=EFGHIJK" 
04.
set "ABFRAGE=abfrage.txt" 
05.
 
06.
set "ZIELVERZEICHNIS=Z:\SammelErgebnis" 
07.
set "DATUM=%date:~-4%-%date:~-7,2%-%date:~-10,2%" 
08.
 
09.
set "GDL=%temp%\GetDriveLetters.vbs" 
10.
>%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveType=1 Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next 
11.
 
12.
for /f %%i in ('cscript //nologo %GDL%') do ( 
13.
    echo "%LAUFWERKE%"|findstr /i %%i >nul && ( 
14.
        dir /a-d "%%i:\%ABFRAGE%">nul 2>&1 || ( 
15.
            pushd %%i:\ 
16.
            for /f "delims=" %%a in ('dir /s /b /a-d %DATEN%') do ( 
17.
                echo %%a 
18.
                xcopy "%%a" "%ZIELVERZEICHNIS%\%DATUM%\">nul 
19.
20.
21.
        popd 
22.
23.
24.
if not exist "%ZIELVERZEICHNIS%\%DATUM%\" echo Es wurden keine Dateien kopiert!
Die letzte Zeile sollte keiner besonderen Beschreibung bedürfen ...

Grüße
bastla

[Edit] Fehlenden ":" in Zeile 14 hinzugefügt [/Edit]
Bitte warten ..
Mitglied: TheDarkLord
08.03.2009 um 14:05 Uhr
Ah super, jetzt funktioniert alles, vielen Dank
In Deinem letzten Script hast Du nen kleinen Fehler gemacht. In Zeile 14 fehlen die Doppelpunkte, es muss heissen "i%%:\%ABFRAGE%"
Deshalb poste ich es hier nochmal komplett und auch mit "Benutzeroberfläche", falls es jemand benutzen will:

01.
@echo off & setlocal  
02.
 
03.
 
04.
REM Autocopy Script 
05.
REM --------------- 
06.
REM Es kann verwendet werden, um automatisch bestimmte Dateitypen von Wechseldatenträgern 
07.
REM wie USB-Sticks oder Speicherkarten von Digi-Cams oder Handys auf HD zu kopieren. 
08.
REM Bitte die REM-Zeilen nicht entfernen! 
09.
REM 
10.
REM (c) TheDarkLord 2009 
11.
REM Spezieller Dank an "bastla" von www.administrator.de 
12.
 
13.
 
14.
 
15.
set "ZIELVERZEICHNIS=" 
16.
REM Syntax "=C:\Bilder" oder "=D:\Eigene Dateien\Bilder" etc 
17.
 
18.
set "DATEN="  
19.
REM Syntax "=*.jpg" oder "=*.bmp *.avi *.mpg *.3gp" etc 
20.
 
21.
set "LAUFWERKE="  
22.
REM Syntax "=E" oder "=EFGHIJK" 
23.
 
24.
 
25.
IF "%ZIELVERZEICHNIS%"=="" goto HINWEIS1 
26.
IF "%DATEN%"=="" goto HINWEIS2 
27.
IF "%LAUFWERKE%"=="" goto HINWEIS3 
28.
set "ABFRAGE=abfrage" 
29.
 
30.
set "DATUM=%date:~-4%-%date:~-7,2%-%date:~-10,2%"  
31.
set "GDL=%temp%\GetDriveLetters.vbs" 
32.
 
33.
REM Nur Wechseldatenträger wie USB und Flash, keine Festplatten:  
34.
>%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveType=1 Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next 
35.
 
36.
REM Wechseldatenträger und Festplatten (intern und extern): 
37.
REM >%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveType^<=2 Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next  
38.
 
39.
for /f %%i in ('cscript //nologo %GDL%') do ( 
40.
    echo "%LAUFWERKE%"|findstr /i %%i >nul && ( 
41.
        dir /a-d "%%i:\%ABFRAGE%">nul 2>&1 || ( 
42.
            pushd %%i:\ 
43.
            for /f "delims=" %%a in ('dir /s /b /a-d %DATEN%') do ( 
44.
                echo %%a 
45.
                xcopy /dy "%%a" "%ZIELVERZEICHNIS%\%DATUM%\">nul 
46.
47.
48.
        popd 
49.
50.
51.
 
52.
dir "%ZIELVERZEICHNIS%\%DATUM%" 
53.
IF errorlevel 1 goto FEHLER 
54.
cls 
55.
 
56.
set ANZAHL=0 
57.
for %%i in ("%ZIELVERZEICHNIS%\%DATUM%\*") do set /a ANZAHL+=1 
58.
goto ERFOLG 
59.
 
60.
:ERFOLG 
61.
cls 
62.
echo\ 
63.
echo E R F O L G R E I C H 
64.
echo\ 
65.
echo %ANZAHL% Datei(en) nach %ZIELVERZEICHNIS%\%DATUM% kopiert! 
66.
echo\ 
67.
pause 
68.
exit 
69.
 
70.
:FEHLER 
71.
cls 
72.
echo\ 
73.
echo F E H L E R 
74.
echo\ 
75.
echo Keine Speicherkarte oder keine Dateien zum kopieren gefunden! 
76.
echo\ 
77.
pause 
78.
exit 
79.
 
80.
:HINWEIS1 
81.
echo\ 
82.
echo P R O G R A M M F E H L E R 
83.
echo\ 
84.
echo Kein Zielverzeichnis festgelegt! 
85.
echo\ 
86.
echo Zum bearbeiten: 
87.
pause 
88.
notepad Autocopy.bat 
89.
exit 
90.
 
91.
:HINWEIS2 
92.
echo\ 
93.
echo P R O G R A M M F E H L E R 
94.
echo\ 
95.
echo Keine Dateitypen festgelegt! 
96.
echo\ 
97.
echo Zum bearbeiten: 
98.
pause 
99.
notepad Autocopy.bat 
100.
exit 
101.
 
102.
:HINWEIS3 
103.
echo\ 
104.
echo P R O G R A M M F E H L E R 
105.
echo\ 
106.
echo Keine Laufwerke festgelegt! 
107.
echo\ 
108.
echo Zum bearbeiten: 
109.
pause 
110.
notepad Autocopy.bat 
111.
exit
Hier nochmal als direkten Download, aber nicht vergessen die BAT zu bearbeiten und die Variablen am Anfang festzulegen!
http://daten.dl-host.de/progs/autocopy.zip
Bitte warten ..
Mitglied: bastla
08.03.2009 um 14:45 Uhr
Hallo TheDarkLord!

In Deinem letzten Script hast Du nen kleinen Fehler gemacht. In Zeile 14 fehlen die Doppelpunkte, es muss heissen "i%%:\%ABFRAGE%"
Leider ja - ich korrigier's oben zur Sicherheit auch noch.

Ein Hinweis: Deine Endfassung (bzw mein vorheriger Ansatz) berücksichtigt jetzt wieder nur den Laufwerkstyp 1 (also "Wechseldatenträger") ...

Grüße
bastla
Bitte warten ..
Mitglied: TheDarkLord
08.03.2009 um 14:56 Uhr
Ja das weiss ich... ich füg die Zeile für Festplatten noch geREMt hinzu, danke für den Hinweis ^^
Bitte warten ..
Mitglied: TheDarkLord
08.03.2009 um 18:25 Uhr
Ich hab noch einen kleinen Bug gefixt, der die Batch unter gewissen umständen hat aufhängen lassen, aber jetzt funktioniert es einwandfrei

Nochmals vielen Dank, bastla
Bitte warten ..
Mitglied: bastla
08.03.2009 um 18:33 Uhr
Hallo TheDarkLord!
Ich hab noch einen kleinen Bug gefixt, der die Batch unter gewissen umständen hat aufhängen lassen
Ich nehme an, Du meinst damit die Vorsorge für den Fall, dass Quell- und Ziellaufwerk beim Kopieren (wegen einer fehlerhaften Laufwerksliste) gleich sind ...

Grüße
bastla
Bitte warten ..
Mitglied: TheDarkLord
08.03.2009 um 18:46 Uhr
Hmm nein, das ist mir noch garnicht aufgefallen, da muss ich nochmal nachschauen...
Das muss doch bestimmt im VB Script gemacht werden oder? Wie geht das dann?
Ich meinte den Bug, dass sich das Script aufhängt, wenn eine Datei schon im Ziel-Ordner vorhanden ist, weil z.B. das Programm nochmal ausgeführt wird, weil jemand noch ein paar neue Fotos gemacht hat und die am selben Tag auch noch kopieren möchte.
Ich hab bei xcopy noch die Option /dy hinzugefügt, dass in diesem Fall dann nur neue Dateien kopiert und automatisch überschrieben werden.
Wie mach ich das mit den gleichen Laufwerken?
Bitte warten ..
Mitglied: bastla
08.03.2009 um 18:56 Uhr
Hallo TheDarkLord!
Wie mach ich das mit den gleichen Laufwerken?
Wird eigentlich auch durch "/dy" abgedeckt - Dateien werden so zwar einmal (auch, wenn's vermutlich nicht beabsichtigt ist), aber dann auch wirklich nur einmal kopiert (wobei aber daraus, bei näherer Betrachtung, ohnehin keine Endlosschleife hätte entstehen sollen) ...

... ansonsten per weiterer Abfrage zwischen den Zeilen 39 und 40 (schließende Klammer zwischen 49 und 50):
if /i %%i neq %ZIELVERZEICHNIS:~,1% ( 
... 
)
Grüße
bastla

[Edit] In %%i steht weiterhin nur der Laufwerksbuchstabe (ohne ":"), daher nur mit dem ersten Zeichen des Zielverzeichnisses, aber dafür ohne Berücksichtigung von Groß-/Kleinschreibung, vergleichen;
obwohl - damit wird eigentlich ein vollständiger Pfad inkl. Laufwerksbuchstabe für das Zielverzeichnis vorausgesetzt; daher (etwas) besser: zwischen Zeile 25 und 26:
for %%i in ("%ZIELVERZEICHNIS%") do set "ZLW=%%~di"
und dann
if /i "%%i:" neq "%ZLW%" (
Und
if not defined ZLW goto :Hinweis1 
if not exist %ZLW% goto :Hinweis1
könnte zur Sicherheit auch noch an passender Stelle (nach der neuen Zeile 26) rein ...
[/Edit]
Bitte warten ..
Mitglied: TheDarkLord
08.03.2009 um 19:01 Uhr
Hallo bastla!

Ja dann lass ich es so wie es jetzt ist. FALLS es irgendwann doch mal auftreten sollte, kann ich ja nochmal die if-Schleife dazwischen hängen

Gruß
Dark
Bitte warten ..
Mitglied: TheDarkLord
09.03.2009 um 18:09 Uhr
Hallo nochmal

Ich hab das Prog noch ein wenig erweitert mit externer config.ini welche beim ersten mal gesetzt wird. Funktioniert auch alles einwandfrei etc pp.
Mir ist aber aufgefallen, dass Deine Zeile für Laufwerkstypen 2 irgendwie nicht funktioniert...
Das ist die Zeile von Dir:
01.
>%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveType^<=2 Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next
Wenn ich das Script aber damit laufen lasse, kopiert der keine Dateien von C oder von ner CD...
Hier nochmal mein aktuelles Script, vielleicht hab ich ja irgendwo anders nen Fehler, weshalb es nicht geht, von C oder CD-ROM zu kopieren:
01.
@echo off & setlocal  
02.
 
03.
 
04.
REM Autocopy Script 
05.
REM --------------- 
06.
REM Es kann verwendet werden, um automatisch bestimmte Dateitypen von Wechseldatenträgern 
07.
REM wie USB-Sticks oder Speicherkarten von Digi-Cams oder Handys auf HD zu kopieren. 
08.
REM Bitte die REM-Zeilen nicht entfernen! 
09.
REM 
10.
REM (c) TheDarkLord 2009 
11.
REM Spezieller Dank an "bastla" von www.administrator.de 
12.
 
13.
 
14.
 
15.
:START 
16.
for /f "delims== tokens=1,2" %%i in ('findstr "ZIELVERZEICHNIS" config.ini') do @set ZIELVERZEICHNIS=%%j 
17.
cls 
18.
for /f "delims== tokens=1,2" %%i in ('findstr "DATEN" config.ini') do @set DATEN=%%j 
19.
cls 
20.
for /f "delims== tokens=1,2" %%i in ('findstr "LAUFWERKE" config.ini') do @set LAUFWERKE=%%j 
21.
cls 
22.
for /f "delims== tokens=1,2" %%i in ('findstr "TYP" config.ini') do @set TYP=%%j 
23.
cls 
24.
 
25.
IF "%ZIELVERZEICHNIS%"=="" goto SETUP 
26.
IF "%DATEN%"=="" goto SETUP 
27.
IF "%LAUFWERKE%"=="" goto SETUP 
28.
IF "%TYP%"=="" goto SETUP 
29.
 
30.
set "ABFRAGE=abfrage" 
31.
set "DATUM=%date:~-4%-%date:~-7,2%-%date:~-10,2%"  
32.
set "GDL=%temp%\GetDriveLetters.vbs" 
33.
 
34.
IF /I "%TYP:~0,-1%"=="2" goto :RUN2  
35.
 
36.
:RUN1 
37.
>%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveType=1 Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next 
38.
goto HAUPTPROGRAMM 
39.
 
40.
:RUN2 
41.
>%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveType^<=2 Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next 
42.
 
43.
:HAUPTPROGRAMM 
44.
for /f %%i in ('cscript //nologo %GDL%') do ( 
45.
    echo "%LAUFWERKE:~0,-1%"|findstr /i %%i >nul && ( 
46.
        dir /a-d "%%i:\%ABFRAGE%">nul 2>&1 || ( 
47.
            pushd %%i:\ 
48.
            for /f "delims=" %%a in ('dir /s /b /a-d %DATEN:~0,-1%') do ( 
49.
                echo %%a 
50.
                xcopy /dy "%%a" "%ZIELVERZEICHNIS:~0,-1%\%DATUM%\">nul 
51.
52.
53.
        popd 
54.
55.
56.
 
57.
dir "%ZIELVERZEICHNIS:~0,-1%\%DATUM%" 
58.
IF errorlevel 1 goto FEHLER 
59.
cls 
60.
 
61.
set ANZAHL=0 
62.
for %%i in ("%ZIELVERZEICHNIS:~0,-1%\%DATUM%\*") do set /a ANZAHL+=1 
63.
goto ERFOLG 
64.
 
65.
:SETUP 
66.
echo\ 
67.
echo P R O G R A M M F E H L E R 
68.
echo\ 
69.
echo Setup nicht abgeschlossen! 
70.
echo\ 
71.
echo Bitte Zielverzeichnis eingeben: 
72.
echo (Beispiel: "C:\Bilder" oder "D:\Eigene Dateien\Bilder") 
73.
set /p TEMPZIELVERZEICHNIS= 
74.
echo\ 
75.
echo Bitte Dateitypen eingeben: 
76.
echo (Beispiel: "*.jpg" oder "*.bmp *.avi *.mpg *.3gp") 
77.
set /p TEMPDATEN= 
78.
echo\ 
79.
echo Bitte Laufwerksbuchstaben eingeben: 
80.
echo (Beispiel: "E" oder "EFGHIJK") 
81.
set /p TEMPLAUFWERKE= 
82.
echo\ 
83.
echo [1] Nur Wechseldatentraeger wie USB und Speicherkarten 
84.
echo [2] Wechseldatentraeger und Festplatten (intern und extern) 
85.
set /P AUSWAHL=Bitte Auswahl treffen [1/2]: 
86.
IF /I "%AUSWAHL%"=="1" goto :TYP1 
87.
IF /I "%AUSWAHL%"=="2" goto :TYP2  
88.
 
89.
:TYP1 
90.
set "TEMPTYP=1" 
91.
goto SETCONFIG 
92.
 
93.
:TYP2 
94.
set "TEMPTYP=2" 
95.
 
96.
:SETCONFIG 
97.
echo ZIELVERZEICHNIS=%TEMPZIELVERZEICHNIS% > config.ini 
98.
echo DATEN=%TEMPDATEN% >> config.ini 
99.
echo LAUFWERKE=%TEMPLAUFWERKE% >> config.ini 
100.
echo TYP=%TEMPTYP% >> config.ini 
101.
goto START 
102.
 
103.
:ERFOLG 
104.
cls 
105.
echo\ 
106.
echo E R F O L G R E I C H 
107.
echo\ 
108.
echo %ANZAHL% Datei(en) nach %ZIELVERZEICHNIS:~0,-1%\%DATUM% kopiert! 
109.
echo\ 
110.
pause 
111.
exit 
112.
 
113.
:FEHLER 
114.
cls 
115.
echo\ 
116.
echo F E H L E R 
117.
echo\ 
118.
echo Keine Speicherkarte oder keine Dateien zum kopieren gefunden! 
119.
echo\ 
120.
pause 
121.
exit
Bitte warten ..
Mitglied: bastla
09.03.2009 um 18:18 Uhr
Hallo TheDarkLord!

Da in der "erweiterten" Scriptvariante für Typ 1 und 2 vorgesorgt werden soll, ist die Abfrage "<=2" - damit das "<" auch im Script ankommt, muss es "maskiert" werden, daher:
... ^<=2 ...
(hatte ich eigentlich auch so gepostet) ...
CD-ROM-Laufwerke haben Typ 4.

Grüße
bastla
Bitte warten ..
Mitglied: TheDarkLord
09.03.2009 um 18:25 Uhr
Hallo bastla!

Ja das hab ich auch so gehabt mit dem "^", das ist nur irgendwie beim kopieren hier untergegangen. Habe es hier aktualisiert. Aber dennoch kopiert der nichts von C oder D...
Wenn ich ^<=4 mache, überprüft der also neben Festplatten (was ja irgendwie nicht geht gerade), USB und Speicherkarten auch CD-Roms?
Das werde ich mal testen, danke

EDIT:
Hm nein, kopiert nichts von CD... nochmal von USB testen, obs überhaupt noch geht
Bitte warten ..
Mitglied: TheDarkLord
09.03.2009 um 18:30 Uhr
Verdammt... es geht überhaupt nicht mehr *grmbl*
Jetzt geht die Fehlersuche wieder von vorne los xDD

EDIT: Fehler gefunden, es läuft und kopiert nun alles

Tut mir leid für die Panikmache, ich hatte meine config manuell bearbeitet und dummerweise das leerzeichen hinter dem letzten dateityp weggelassen.
Dieses wird aber für das script gebraucht und deshalb hat er auch nichts gemacht ^^
Aber trotzdem nochmal vielen Dank für die super Hilfe und immer recht zeitnahen antworten, ich hab Dich im Script natürlich mit aufgeführt!

Gruß
Dark
Bitte warten ..
Mitglied: bastla
09.03.2009 um 20:03 Uhr
Hallo TheDarkLord!

Etwas zum Testen:
01.
@echo off & setlocal  
02.
 
03.
 
04.
REM Autocopy Script 
05.
REM --------------- 
06.
REM Es kann verwendet werden, um automatisch bestimmte DateiTDL_TYPen von WechselTDL_DATENträgern 
07.
REM wie USB-Sticks oder Speicherkarten von Digi-Cams oder Handys auf HD zu kopieren. 
08.
REM Bitte die REM-Zeilen nicht entfernen! 
09.
REM 
10.
REM (c) TheDarkLord 2009 
11.
REM Spezieller Dank an "bastla" von www.administrator.de 
12.
 
13.
 
14.
 
15.
:START 
16.
if exist "%~dp0\config.ini" for /f "usebackq delims=" %%i in ("%~dp0\config.ini") do set "%%i" 
17.
 
18.
IF "%TDL_ZIELVERZEICHNIS%"=="" goto SETUP 
19.
IF "%TDL_DATEN%"=="" goto SETUP 
20.
IF "%TDL_LAUFWERKE%"=="" goto SETUP 
21.
IF "%TDL_TYP%"=="" goto SETUP 
22.
 
23.
set "ABFRAGE=abfrage" 
24.
set "DATUM=%date:~-4%-%date:~-7,2%-%date:~-10,2%"  
25.
set "GDL=%temp%\GetDriveLetters.vbs" 
26.
>%GDL% echo Set fso=CreateObject("Scripting.FileSystemObject"):For Each D In fso.Drives:If D.DriveTYPE^<=%TDL_TYP% Then:If D.IsReady Then:WScript.Echo D.DriveLetter:End If:End If:Next 
27.
 
28.
 
29.
:HAUPTPROGRAMM 
30.
for /f %%i in ('cscript //nologo %GDL%') do ( 
31.
    echo "%TDL_LAUFWERKE%"|findstr /i %%i >nul && ( 
32.
        dir /a-d "%%i:\%ABFRAGE%">nul 2>&1 || ( 
33.
            pushd %%i:\ 
34.
            for /f "delims=" %%a in ('dir /s /b /a-d %TDL_DATEN% 2^>nul') do ( 
35.
                echo %%a 
36.
                xcopy /dy "%%a" "%TDL_ZIELVERZEICHNIS%\%DATUM%\">nul 
37.
38.
39.
        popd 
40.
41.
42.
 
43.
dir "%TDL_ZIELVERZEICHNIS%\%DATUM%">nul 2>&1 || goto FEHLER 
44.
 
45.
set ANZAHL=0 
46.
for %%i in ("%TDL_ZIELVERZEICHNIS%\%DATUM%\*") do set /a ANZAHL+=1 
47.
goto ERFOLG 
48.
 
49.
:SETUP 
50.
echo\ 
51.
echo P R O G R A M M F E H L E R 
52.
echo\ 
53.
echo Setup nicht abgeschlossen! 
54.
echo\ 
55.
echo Bitte ZIELVERZEICHNIS eingeben: 
56.
echo (Beispiel: C:\Bilder  oder  D:\Eigene Dateien\Bilder) 
57.
set /p TDL_ZIELVERZEICHNIS= 
58.
echo\ 
59.
echo Bitte Datei_Typen eingeben: 
60.
echo (Beispiel: *.jpg  oder  *.bmp *.avi *.mpg *.3gp) 
61.
set /p TDL_DATEN= 
62.
echo\ 
63.
echo Bitte Laufwerksbuchstaben eingeben: 
64.
echo (Beispiel: E  oder  EFGHIJK) 
65.
set /p TDL_LAUFWERKE= 
66.
 
67.
:TYPEINGABE 
68.
echo\ 
69.
echo [1] Nur Wechseldatentraeger wie USB und Speicherkarten 
70.
echo [2] Wechseldatentraeger und Festplatten (intern und extern) 
71.
echo [0] Abbruch 
72.
set /P AUSWAHL=Bitte Auswahl treffen [1/2/0]: 
73.
if "%AUSWAHL:~,1%"=="0" goto :ABBRUCH 
74.
if "%AUSWAHL:~,1%"=="1" goto :TYP1 
75.
if "%AUSWAHL:~,1%"=="2" goto :TYP2  
76.
goto :TYPEINGABE 
77.
 
78.
:TYP1 
79.
set "TDL_TYP=1" 
80.
goto SETCONFIG 
81.
 
82.
:TYP2 
83.
set "TDL_TYP=2" 
84.
 
85.
:SETCONFIG 
86.
set TDL_>"%~dp0\config.ini" 
87.
goto START 
88.
 
89.
:ERFOLG 
90.
cls 
91.
echo\ 
92.
echo E R F O L G R E I C H 
93.
echo\ 
94.
echo %ANZAHL% Datei(en) nach %TDL_ZIELVERZEICHNIS%\%DATUM% kopiert! 
95.
echo\ 
96.
pause 
97.
goto :eof 
98.
 
99.
:FEHLER 
100.
cls 
101.
echo\ 
102.
echo F E H L E R 
103.
echo\ 
104.
echo Keine Speicherkarte oder keine Dateien zum Kopieren gefunden! 
105.
echo\ 
106.
pause 
107.
goto :eof 
108.
 
109.
:ABBRUCH 
110.
cls 
111.
echo\ 
112.
echo F E H L E R 
113.
echo\ 
114.
echo Abbruch durch Benutzer! 
115.
echo\ 
116.
pause 
117.
goto :eof
Um den Umgang mit der "config.ini" etwas zu vereinfachen, beginnen alle relevanten Variablen mit "TDL_".

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Datenbanken
gelöst DB2 Daten in Windows DB2 kopieren (1)

Frage von Emheonivek zum Thema Datenbanken ...

Microsoft Office
Excel 2010 - Microsoft Excel kann die Daten nicht kopieren (4)

Frage von EDV-Oellerking zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...