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

Ordner anzeigen>Ordner auswaehlen>Dateien kopieren

Frage Entwicklung Batch & Shell

Mitglied: ManneKL

ManneKL (Level 1) - Jetzt verbinden

01.03.2007, aktualisiert 05.03.2007, 6423 Aufrufe, 13 Kommentare

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
Mitglied: ManneKL
01.03.2007 um 16:09 Uhr
Hallo,
darf leider keine fremde Software auf meinen Rechner installieren, sondern nur lokal ,selbstgemachte kleine Hilfstools.danke für den Tipp.
Aber vielleicht kann mir jemand trotzdem ein kleines Skript entwickeln????
Vielen dank
Manne
Bitte warten ..
Mitglied: miniversum
01.03.2007 um 19:05 Uhr
Du meinst sowas (Halt ohne Fehlerabfrage)?
01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
 
04.
set dir1="D:" 
05.
set dest="e:" 
06.
 
07.
set nummer=1 
08.
FOR /F "tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do ( 
09.
echo !nummer!: %%A 
10.
set /a nummer=!nummer!+1 
11.
12.
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):  
13.
set /a OrdnerNr=%OrdnerNr%-1 
14.
set dir2= 
15.
FOR /F "skip=%OrdnerNr% tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do if not defined dir2 set dir2=%%A 
16.
 
17.
ECHO Copy %dir1%\%dir2%\Datei.txt %dest%\ 
18.
 
19.
pause
miniversum
Bitte warten ..
Mitglied: ManneKL
02.03.2007 um 10:24 Uhr
Hallo miniversum,
danke für Deine Super-Hilfe, aber nach meinen Anpassungen funktioniert nicht alles.

Hier das angepasste Skript:

01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
 
04.
set dir1="T:\Bestellungen\" 
05.
set dest="C:\order01\" 
06.
 
07.
set nummer=1 
08.
FOR /F "tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do ( 
09.
echo !nummer!: %%A 
10.
set /a nummer=!nummer!+1 
11.
12.
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):  
13.
set /a OrdnerNr=%OrdnerNr%-1 
14.
set dir2= 
15.
FOR /F "skip=%OrdnerNr% tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do if not defined dir2 set dir2=%%A 
16.
 
17.
ECHO Copy %dir1%\%dir2%\*.zu %dest% 
18.
pause
Beim erste Stepp wenden die Orner angezeigt(1-16).
weiter mit der Auswahl...

1....bei "Bitte Orner aussuchen<1-16>:1 , bei Eingabe 1 bringt er"tokens=1 delims=""ist syntaktisch an dieser

Stelle nicht verarbeitbar.Copy "T:\Bestellungen\"\\*.zu "C:\order01\",Drücken Sie eine beliebige

Taste...(anschliessend schliesst er das Fenster,ohne etwas gemacht zu haben).
2.....bei "Bitte Orner aussuchen<1-16>:2 , bei Eingabe 2(2 ist Frische,oder weiterer Zahl),bringt er Copy

"T:\Bestellungen\"\Frische\*.zu "C:\order01\"...auch ohne Erfolg.

Was kann da noch verändert werden, damit man auch die Unterordner zB:unter Frische (Unterordner) angezeigt ,man

einen bestimmten auswählen und dessen Inhalt(*.zu-Dateien) nach order01 kopieren kann?

Danke schon mal im vorraus..
Manne
Bitte warten ..
Mitglied: Biber
02.03.2007 um 10:56 Uhr
Moin ManneKL,

probier es so weiter...

01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
 
04.
set "dir1=T:\Bestellungen" 
05.
set dest="C:\order01\" 
06.
 
07.
set nummer=1 
08.
FOR /F "tokens=1 delims=" %%A in ('dir /b /s /AD %dir1%') do ( 
09.
echo !nummer!: %%A 
10.
set /a nummer=!nummer!+1 
11.
12.
set /a nummer=!nummer!-1 
13.
 
14.
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):  
15.
If %OrdnerNr% GEQ 1 set /a OrdnerNr-=1 
16.
If %OrdnerNr% NEQ 0 set "ToSkip=skip=%OrdnerNr%" 
17.
REM Ein "Skip=0" würde zu Fehlern führen 
18.
set dir2= 
19.
FOR /F "%ToSkip% delims=" %%A in ('dir /b /s /AD %dir1%') do if not defined dir2 set dir2=%%A 
20.
 
21.
ECHO Copy %dir1%\%dir2%\*.zu %dest% 
22.
pause
Gruss Biber
Bitte warten ..
Mitglied: miniversum
02.03.2007 um 18:54 Uhr
01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
 
04.
<b>set dir1="T:\Bestellungen"</b> 
05.
<b>set dest="C:\order01"</b> 
06.
 
07.
set nummer=1 
08.
FOR /F "tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do ( 
09.
echo !nummer!: %%A 
10.
set /a nummer=!nummer!+1 
11.
12.
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):  
13.
<b>if %OrdnerNr% gtr 1 set /a OrdnerNr=%OrdnerNr%-1</b> 
14.
set dir2= 
15.
FOR /F "skip=%OrdnerNr% tokens=1 delims=" %%A in ('dir /b /AD %dir1%') do if not defined dir2 set dir2=%%A 
16.
 
17.
ECHO Copy %dir1%\%dir2%\*.zu %dest% 
18.
pause
Hier meine Änderungen an dem Code in FETT.

miniversum
Bitte warten ..
Mitglied: Biber
02.03.2007 um 19:21 Uhr
Hmmm, miniversum,

if %OrdnerNr% gtr 1 set /a OrdnerNr=%OrdnerNr%-1

...dann macht er aber auch ein "Skip=1", wenn der OrdnerNr 1 gewählt wird.

---> dann sichert er entweder den zweiten Ordner (falls vorhanden) oder greift ins Leere, falls nur eine Zeile zurückgeliefert wird.

Gruss
Biber
Bitte warten ..
Mitglied: miniversum
02.03.2007 um 19:43 Uhr
achmann so ist das wenn man schnell drauf los tipt.
Heute ist echt ncith mein Tag, erst die PCwelt mit dem supertollen Vistahack kaput und nun das noch ;)
ich meinte natürlich größer gleich 1 also
if %OrdnerNr% geq 1 set /a OrdnerNr=%OrdnerNr%-1

miniversum
Bitte warten ..
Mitglied: Biber
03.03.2007 um 12:10 Uhr
Moin miniversum,

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.
01.
@echo off & setlocal enabledelayedexpansion 
02.
 
03.
set "dir1=T:\Bestellungen" 
04.
set dest="C:\order01\" 
05.
 
06.
<b>set /a nummer=0</b> 
07.
FOR /F "tokens=1 delims=" %%A in ('dir /b /s /AD %dir1%') do ( 
08.
<b>      set /a nummer=!nummer!+1</b> 
09.
<b>      echo !nummer!: %%A </b> 
10.
11.
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%):  
12.
If %OrdnerNr% GEQ 1 set /a OrdnerNr-=1 
13.
If %OrdnerNr% NEQ 0 set "ToSkip=skip=%OrdnerNr%" 
14.
REM Ein "Skip=0" würde zu Fehlern führen 
15.
set dir2= 
16.
FOR /F "%ToSkip% delims=" %%A in ('dir /b /s /AD %dir1%') do if not defined dir2 set dir2=%%A 
17.
 
18.
ECHO Copy %dir1%\%dir2%\*.zu %dest% 
19.
pause
Gruss
Biber
Bitte warten ..
Mitglied: Biber
05.03.2007 um 10:45 Uhr
Öhmmm, ManneKL,

liest Du noch mit? Bzw. passt das bei Dir?

Gruss
Biber
Bitte warten ..
Mitglied: ManneKL
05.03.2007 um 12:10 Uhr
Hallo Biber,
ja, war bis heut leider familiär verhindert und komme jetzt erst wieder zum testen.
Also, habe Dein letztes Skript angepasst, aber es funktioniert noch nicht.Zeigt leeres cmd-Fenster in den der Kuser ober blinkt.Teste es gleich weiter.
Bei der Variante von miniversum komme ich auch nur bis dahin, wo die ersten Ordner angezeigt und ich durch Ziffern einen auswählen kann.
Dein Skript:
echo off & setlocal enabledelayedexpansion

set "dir1=T:\Zuteilungen"
set dest="C:\order01\"

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

ECHO Copy %dir1%\%dir2%\*.zu %dest%
pause


Vielleicht kannst Du mir noch mal helfen????
Gruß
Manne
Bitte warten ..
Mitglied: Biber
05.03.2007 um 13:02 Uhr
Moin ManneKL,

ich habe es bei mir noch mal simuliert mit [nur "SET Dir1=..." geändert]:
01.
::---------------snipp ManneKL2.bat --- 
02.
@echo off & setlocal EnableDelayedExpansion 
03.
set "dir1=T:\Zuteilungen" 
04.
set dest="C:\order01\" 
05.
Set "dir1=f:\temp" 
06.
set /a nummer=0 
07.
FOR /F "tokens=1 delims=" %%A in ('dir /b /s /AD %dir1%') do ( 
08.
set /a nummer=!nummer!+1 
09.
echo !nummer!: %%A  
10.
11.
set /p OrdnerNr=Bitte Ordner aussuchen (1-%nummer%): 
12.
If %OrdnerNr% GEQ 1 set /a OrdnerNr-=1 
13.
If %OrdnerNr% NEQ 0 set "ToSkip=skip=%OrdnerNr%" 
14.
REM Ein "Skip=0" würde zu Fehlern führen 
15.
set dir2= 
16.
FOR /F "%ToSkip% delims=" %%A in ('dir /b /s /AD %dir1%') do if not defined dir2 set dir2=%%A 
17.
 
18.
<b>ECHO Copy %dir2%\*.zu %dest%</b> 
19.
pause
Output am CMD-Prompt:
01.
(=12:54:10  D:\temp=) 
02.
>f:\temp\ManneKL2.bat 
03.
1: f:\temp\smarttools 
04.
2: f:\temp\dirgraph 
05.
Bitte Ordner aussuchen (1-2):1 
06.
Copy f:\temp\smarttools\*.zu "C:\order01\" 
07.
Drücken Sie eine beliebige Taste . . . 
08.
 
09.
(=12:54:19  D:\temp=) 
10.
>f:\temp\ManneKL2.bat 
11.
1: f:\temp\smarttools 
12.
2: f:\temp\dirgraph 
13.
Bitte Ordner aussuchen (1-2):2 
14.
Copy f:\temp\dirgraph\*.zu "C:\order01\" 
15.
Drücken Sie eine beliebige Taste . . .
.... 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
Bitte warten ..
Mitglied: ManneKL
05.03.2007 um 14:50 Uhr
Hallo Biber,
habe Deine Version schon mehrmals verändert und verschiedene Varianten erfolglos ausprobiert.
Richtig ist der Pfad:T:\Zuteilungen, unter dem 16 Ordner sind und unter diesen wierderum Ordner , in den die txt-Dateien sich befinden, die nach C:\order01 kopiert werden solle.
Bei Deinem letzten Skript , zeigt er die ersten Auswahl-Ordner garnicht an, sondern fragt gleich"Bitte Ordner aussuchen(1-0):.

Alle Ordner sind gefüllt und die Pfadangaben angeglichen, aber bis jetzt komme ich nicht weiter.
Kannste noch mal nachschauen?
Manne
Bitte warten ..
Mitglied: Biber
05.03.2007 um 16:02 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Dateien kopieren die nicht mehr verändert werden? (10)

Frage von pbelcl zum Thema Batch & Shell ...

Windows Server
gelöst Administrator kann auf Server keine EXE-Dateien kopieren, löschen, anlegen (5)

Frage von Winfried-HH zum Thema Windows Server ...

Batch & Shell
Nur aktuelle Dateien kopieren (3)

Frage von icke.hausen zum Thema Batch & Shell ...

Batch & Shell
gelöst Script: Dateien kopieren, Benamung anhang von Attributen (4)

Frage von Flexxa zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

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

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...