Ordner anzeigenOrdner auswaehlenDateien kopieren
Orner anzeigen>Orner auswaehlen>Dateien kopieren
Hallo,
brauch wieder mal Eure Hilfe bei einer Lösungsumsetzung.
Muss täglich ca. 300 Einzeldateien mit den Windows-Explorer(Win2000/XP) manuell aus jeweils 12 Odnern in einen anderen (Zielordner) zur Weiterverarbeitung kopieren.Dabei kommt es manchmal vor , dass Dateinen mehrmals in den Zielordner kopiert werden, was fatale Folgen hat.Meine Frage, Kann man mit einen Batch den ganzen Vorgang sicherer machen?Mein Vorschlag:1.Anzeige der Ordner unter LW: T\Bestellungen\(12 Ordner,sind immer die selben:zB:Trocken,Frische,Fleisch,TKK....) im cmd-Fenster.2.Auswahl eines Unter- Ordners(zB: 20070303D2_0814_Neuaufnahme;20070302D2_0744_Wochenwerbung...mehrere.)3.Kopieren der gesamten Einzeldateien(*.txt zB:TRO04509.ZU..ca.250)aus den ausgewählten Unterordner nach LW S:\Order.4.Rückgabe einer Erfolgsmelung.
Wenn man dass nicht mit einem Batch machen kann, habt Ihr da eine andere Lösung?
Viele Grüsse
Manne
Hallo,
brauch wieder mal Eure Hilfe bei einer Lösungsumsetzung.
Muss täglich ca. 300 Einzeldateien mit den Windows-Explorer(Win2000/XP) manuell aus jeweils 12 Odnern in einen anderen (Zielordner) zur Weiterverarbeitung kopieren.Dabei kommt es manchmal vor , dass Dateinen mehrmals in den Zielordner kopiert werden, was fatale Folgen hat.Meine Frage, Kann man mit einen Batch den ganzen Vorgang sicherer machen?Mein Vorschlag:1.Anzeige der Ordner unter LW: T\Bestellungen\(12 Ordner,sind immer die selben:zB:Trocken,Frische,Fleisch,TKK....) im cmd-Fenster.2.Auswahl eines Unter- Ordners(zB: 20070303D2_0814_Neuaufnahme;20070302D2_0744_Wochenwerbung...mehrere.)3.Kopieren der gesamten Einzeldateien(*.txt zB:TRO04509.ZU..ca.250)aus den ausgewählten Unterordner nach LW S:\Order.4.Rückgabe einer Erfolgsmelung.
Wenn man dass nicht mit einem Batch machen kann, habt Ihr da eine andere Lösung?
Viele Grüsse
Manne
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 52946
Url: https://administrator.de/contentid/52946
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
13 Kommentare
Neuester Kommentar
Du meinst sowas (Halt ohne Fehlerabfrage)?
miniversum
@echo off
setlocal enabledelayedexpansion
set dir1="D:"
set dest="e:"
set nummer=1
FOR /F "tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do (
echo !nummer!: %%A
set /a nummer=!nummer!+1
)
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):
set /a OrdnerNr=%OrdnerNr%-1
set dir2=
FOR /F "skip=%OrdnerNr% tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do if not defined dir2 set dir2=%%A
ECHO Copy %dir1%\%dir2%\Datei.txt %dest%\
pause
miniversum
Moin ManneKL,
probier es so weiter...
Gruss Biber
probier es so weiter...
@echo off
setlocal enabledelayedexpansion
set "dir1=T:\Bestellungen"
set dest="C:\order01\"
set nummer=1
FOR /F "tokens=1 delims=" %%A in ('dir /b /s /AD %dir1%') do (
echo !nummer!: %%A
set /a nummer=!nummer!+1
)
set /a nummer=!nummer!-1
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):
If %OrdnerNr% GEQ 1 set /a OrdnerNr-=1
If %OrdnerNr% NEQ 0 set "ToSkip=skip=%OrdnerNr%"
REM Ein "Skip=0" würde zu Fehlern führen
set dir2=
FOR /F "%ToSkip% delims=" %%A in ('dir /b /s /AD %dir1%') do if not defined dir2 set dir2=%%A
ECHO Copy %dir1%\%dir2%\*.zu %dest%
pause
Gruss Biber
@echo off
setlocal enabledelayedexpansion
<b>set dir1="T:\Bestellungen"</b>
<b>set dest="C:\order01"</b>
set nummer=1
FOR /F "tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do (
echo !nummer!: %%A
set /a nummer=!nummer!+1
)
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):
<b>if %OrdnerNr% gtr 1 set /a OrdnerNr=%OrdnerNr%-1</b>
set dir2=
FOR /F "skip=%OrdnerNr% tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do if not defined dir2 set dir2=%%A
ECHO Copy %dir1%\%dir2%\*.zu %dest%
pause
Hier meine Änderungen an dem Code in FETT.
miniversum
Moin miniversum,
da hatte ich mich wohl zu kurz gefasst...
Ich meinte:
Nur: dieser Wert 1 wird jetzt für die "Skip=.."-Klausel verwendet.
Und das ist fachlich nicht richtig. Beim Ordner1 muss ja nicht geskipt werden, aber ein "skip=0" ist syntaktisch nicht erlaubt.
Deswegen mein Rumgeeiere oben.
Ein bisschen kürzer wäre so, aber im Kern stimmte es IMHO schon.
Gruss
Biber
da hatte ich mich wohl zu kurz gefasst...
Ich meinte:
if %OrdnerNr% gtr 1 set /a OrdnerNr=%OrdnerNr%-1
Wenn %OrdnerNr% vorher gleich 1 ist, ist er hinterher...? Richtig, immer noch 1.Nur: dieser Wert 1 wird jetzt für die "Skip=.."-Klausel verwendet.
Und das ist fachlich nicht richtig. Beim Ordner1 muss ja nicht geskipt werden, aber ein "skip=0" ist syntaktisch nicht erlaubt.
Deswegen mein Rumgeeiere oben.
Ein bisschen kürzer wäre so, aber im Kern stimmte es IMHO schon.
@echo off & setlocal enabledelayedexpansion
set "dir1=T:\Bestellungen"
set dest="C:\order01\"
<b>set /a nummer=0</b>
FOR /F "tokens=1 delims=" %%A in ('dir /b /s /AD %dir1%') do (
<b> set /a nummer=!nummer!+1</b>
<b> echo !nummer!: %%A </b>
)
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):
If %OrdnerNr% GEQ 1 set /a OrdnerNr-=1
If %OrdnerNr% NEQ 0 set "ToSkip=skip=%OrdnerNr%"
REM Ein "Skip=0" würde zu Fehlern führen
set dir2=
FOR /F "%ToSkip% delims=" %%A in ('dir /b /s /AD %dir1%') do if not defined dir2 set dir2=%%A
ECHO Copy %dir1%\%dir2%\*.zu %dest%
pause
Gruss
Biber
Moin ManneKL,
ich habe es bei mir noch mal simuliert mit [nur "SET Dir1=..." geändert]:
Output am CMD-Prompt:
works as designed...
[in der vorletzten Zeile habe ich noch die Variable %dir1% gestrichen... ist jetzt überflüssig.]
Aber:
In dem von dir geposteten Skript ist statt von "T:\Bestellung" jetzt von "T:\Zuteilung" die Rede...
Vielleicht ist das der falsche Pfad (keine Dateien dort)?
Gruss Biber
ich habe es bei mir noch mal simuliert mit [nur "SET Dir1=..." geändert]:
::---------------snipp ManneKL2.bat ---
@echo off & setlocal EnableDelayedExpansion
set "dir1=T:\Zuteilungen"
set dest="C:\order01\"
Set "dir1=f:\temp"
set /a nummer=0
FOR /F "tokens=1 delims=" %%A in ('dir /b /s /AD %dir1%') do (
set /a nummer=!nummer!+1
echo !nummer!: %%A
)
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):
If %OrdnerNr% GEQ 1 set /a OrdnerNr-=1
If %OrdnerNr% NEQ 0 set "ToSkip=skip=%OrdnerNr%"
REM Ein "Skip=0" würde zu Fehlern führen
set dir2=
FOR /F "%ToSkip% delims=" %%A in ('dir /b /s /AD %dir1%') do if not defined dir2 set dir2=%%A
<b>ECHO Copy %dir2%\*.zu %dest%</b>
pause
(=12:54:10 D:\temp=)
>f:\temp\ManneKL2.bat
1: f:\temp\smarttools
2: f:\temp\dirgraph
Bitte Ordner aussuchen (1-2):1
Copy f:\temp\smarttools\*.zu "C:\order01\"
Drücken Sie eine beliebige Taste . . .
(=12:54:19 D:\temp=)
>f:\temp\ManneKL2.bat
1: f:\temp\smarttools
2: f:\temp\dirgraph
Bitte Ordner aussuchen (1-2):2
Copy f:\temp\dirgraph\*.zu "C:\order01\"
Drücken Sie eine beliebige Taste . . .
[in der vorletzten Zeile habe ich noch die Variable %dir1% gestrichen... ist jetzt überflüssig.]
Aber:
In dem von dir geposteten Skript ist statt von "T:\Bestellung" jetzt von "T:\Zuteilung" die Rede...
Vielleicht ist das der falsche Pfad (keine Dateien dort)?
Gruss Biber
Hmmm, ManneKL,
ich kann jetzt weder gedanklich noch am CMD-Prompt diesen Effekt reproduzieren.
Sicher habe ich etwas übersehen, aber das wird vermutlich ein/e unbeteiligte/r Mitleser/in viel schneller entdecken als Dich (deshalb ist ja das 4-Augen-Prinzip so hilfreich).
Einzige Idee, die es etwas beschleunigen könnte:
- poste die ersten Zeilen der "Dir /s /b /Ad t:\Zuteilung"
-und/oder setze nach der Zeile "set /a nummer=0" eine Zeile mit "Echo on" rein und lass das Batchfragment laufen. Und poste diese halbe Seite Ausgabe.
[..ist ein Montach heute... *axelzuck*... und ein VollMondtach dazu...]
Gruss
Biber
ich kann jetzt weder gedanklich noch am CMD-Prompt diesen Effekt reproduzieren.
Sicher habe ich etwas übersehen, aber das wird vermutlich ein/e unbeteiligte/r Mitleser/in viel schneller entdecken als Dich (deshalb ist ja das 4-Augen-Prinzip so hilfreich).
Einzige Idee, die es etwas beschleunigen könnte:
- poste die ersten Zeilen der "Dir /s /b /Ad t:\Zuteilung"
-und/oder setze nach der Zeile "set /a nummer=0" eine Zeile mit "Echo on" rein und lass das Batchfragment laufen. Und poste diese halbe Seite Ausgabe.
[..ist ein Montach heute... *axelzuck*... und ein VollMondtach dazu...]
Gruss
Biber