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, 1802 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
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Windows Server
Server sehr langsam bei vielen kleinen Dateien (5)

Frage von MichiBLNN zum Thema Windows Server ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...