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

Keine Kopie von Dateien, die einen Unterstrich in der Dateierweiterung haben.

Frage Entwicklung Batch & Shell

Mitglied: joe65

joe65 (Level 1) - Jetzt verbinden

15.08.2013 um 17:44 Uhr, 1829 Aufrufe, 8 Kommentare, 1 Danke

Hallo,

ich möchte über ein Batch Script Dateien kopieren.
Dateien, die eine bestimmte Erweiterung haben (z.B. *.zip) möchte ich nicht kopieren.
Diese Dateierweiterungen habe ich in der Datei "nocopy.txt" angegeben.
Das ganze funktioniert auch.

01.
xcopy "%Quelle1%\*.*" "%Ziel1%" /s /y /i /d /r /exclude:nocopy.txt
Mein Problem:
Ich möchte auch Dateien, die einen Unterstrich [_] in der Erweiterung haben nicht kopieren.
z.B.:
*.xls_
*.txt_20130814
*.docx_old
also immer wenn nach der eigentlichen Dateierweiterung noch ein Unterstrich folgt.
Dabei ist völlig egal was nach dem Unterstrich folgt, d.h. es kann auch nichts mehr folgen.
Letzlich sollen alle Dateien nicht kopiert werden, in deren Erweiterung ein Unterstrich vorkommt.
Wie muss hierzu der Eintrag in "nocopy.txt" lauten?
Mitglied: Endoro
15.08.2013, aktualisiert um 21:45 Uhr
Hallo, du kannst mal das versuchen:
01.
dir /b "%Quelle1%\*.*_*">nocopy2.txt 
02.
xcopy "%Quelle1%\*" "%Ziel1%" /syidr /exclude:nocopy.txt+nocopy2.txt
lg.
Bitte warten ..
Mitglied: bastla
15.08.2013 um 22:56 Uhr
@ Endoro
Damit die Liste komplett (es sollen ja auch Unterordner kopiert werden), aber nicht zu umfangreich wird, vielleicht besser
for /f "delims=" %%i in ('dir /s/b/a-d "%Quelle1%\*.*_*"') do >>nocopy2.txt echo %%~xi
Alternative: Kopieren und danach
del /s /q "%Ziel1%\*.*_*"
- könnte aber bei schreibgeschützten / versteckten / System-Dateien etwas mehr Aufwand erfordern ...

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
15.08.2013 um 23:31 Uhr
@bastla
Super Idee mit den Extensions. (steht auch in der Hilfe, man müsste die nur mal lesen )
lg.
Bitte warten ..
Mitglied: colinardo
16.08.2013, aktualisiert um 11:07 Uhr
Hi @bastla und @Endoro,
das Problem mit eurem Filter *.*_* ist, das wenn im Dateinamen Punkte und Unterstriche vorkommen diese Dateien auch nicht mitkopiert werden.
Beispiel:
Quartal.Q3_10.xls

man müsste die Liste für die Schleife mit Findstr ausfiltern:
ungetestet etwa so:
'dir /s/b/a-d "%Quelle1%\*.*" ^| Findstr /r /v ".*\.[^^\._]*$"'
Grüße Uwe
Bitte warten ..
Mitglied: bastla
16.08.2013, aktualisiert um 08:59 Uhr
@ colinardo
Schon klar - und wenn schon "findstr", dann noch ein zweites, um Dubletten in der "nocopy2.txt" zu vermeiden und diese kürzer zu halten, also etwa
... do findstr /ix "%%~xi" nocopy2.txt>nul || >>"nocopy2.txt" echo %%~xi
Grüße
bastla
Bitte warten ..
Mitglied: Endoro
16.08.2013, aktualisiert um 16:32 Uhr
Hallo,
01.
(FOR /f "delims=" %%a IN ('dir /b /s "%Quelle1%\*.*_*"') DO FOR /f "delims=_" %%b IN ("%%~xa") DO IF "%%~xa" neq "%%~xb" ECHO %%~xa)>nocopy2.txt 
02.
xcopy "%Quelle1%\*" "%Ziel1%" /syidr /exclude:nocopy.txt+nocopy2.txt
lg.

PS: @bastla danke schön €.
Bitte warten ..
Mitglied: bastla
16.08.2013 um 11:18 Uhr
@ Endoro
Auch schön - wobei ich immer noch zumindest ein "/s" für "dir" verwenden würde ...

Grüße
bastla
Bitte warten ..
Mitglied: joe65
20.08.2013 um 19:57 Uhr
Hallo,

Danke für eure Hilfe. An den Fall mit Punkt und Unterstrich im Dateinamen hatte ich gar nicht gedacht.
Ist aber gut zu wissen wie sowas zu lösen ist.

Viele Grüße Joe65
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst 3 Excel Dateien, gleich umkodieren? (5)

Frage von Akeipra zum Thema Microsoft Office ...

Batch & Shell
Automatisch dateien die sich in einem Ordner befinden, zippen (6)

Frage von cdm1970 zum Thema Batch & Shell ...

Batch & Shell
Maximale Größe zu verarbeitender txt-Dateien mit Batch (5)

Frage von Muck1303 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...