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

Doppelte Dateien mittels Batch entfernen

Frage Entwicklung Batch & Shell

Mitglied: dervik

dervik (Level 1) - Jetzt verbinden

04.06.2013 um 12:04 Uhr, 2408 Aufrufe, 10 Kommentare, 4 Danke

Hallo,

folgende Problematik;

Ich habe mittels des OFC-Tools *.doc, *.ppt und *.xls Dokumente in die Formate *.docx, *.pptx und *.xlsx konvertiert. Die konvertierten Dateien befinden sich jeweils im gleichen Verzeichnis wie die alten.

Nun soll in einem automatisierten Schritt die *.doc, *.ppt und *.xls Dateien (sofern jeweils eine *.docx, *.pptx und *.xlsx mit gleichen Namen befindet) idealer Weise verschoben werden. Sofern eine Realisierung mittels Löschung sich einfacher gestalten lässt wäre dies auch in Ordnung.

Wichtig ist, dass eine Prüfung erfolgt ob sich auch wirklich eine konvertierte Datei existiert (Das OFC-Tool konvertiert z.B. keine Kennwort geschützten Dateien) und eine Löschung von nicht konvertierten Dateien muss ausgeschlossen werden.

Vielen Dank für konstruktive Vorschläge
Mitglied: Endoro
04.06.2013, aktualisiert um 12:50 Uhr
Hallo dervik,

das von dir beschriebene Problem ist derart häufig, dass du mit Suchfunktion und -maschine garantiert was passendes findest.


Gruss!
Bitte warten ..
Mitglied: dervik
04.06.2013 um 12:59 Uhr
Hallo,

für Teilproblematiken stimme ich Dir zu, jedoch habe ich nichts gefunden was in Summe mein Problem löst.

MfG
Bitte warten ..
Mitglied: Endoro
04.06.2013 um 13:19 Uhr
Vielleicht kannst du ja deine Teilergebnisse mal zeigen.
Oder suchst du einen Programmierservice?

Gruss!
Bitte warten ..
Mitglied: dervik
04.06.2013 um 13:30 Uhr
ich suche keinen Service. Ich habe mich an folgendem orientiert: (jedoch fehlt mir irgendwie noch "etwas"):

for /r C:\Pfad %i in (*.doc) do @if /i "%~x"==".doc" @echo DEL "%i"
Bitte warten ..
Mitglied: Biber
04.06.2013, aktualisiert um 14:07 Uhr
Moin dervik,

willkommen im Forum.

Du hast doch oben als Prosatext genau beschrieben, was passieren soll.

Dann mach do eine schrittweise Übersetzung (ganz stumpf, so wie die RedmonderInnen die M$KB-Artikel übersetzen).

Zitat von dervik:
Nun soll in einem automatisierten Schritt die *.doc, *.ppt und *.xls Dateien
-> for /R "d:\einVerzeichnis" %i in (*.xls) do... oder entsprechend *.ppt, *.xls)...
--> Sonderlocke: bei Abfrage nach Extension *.xls wird auch *.xlsx (bzw. alles mit *xls* ) geliefert.
.... if /i [%~xi] EQU [.xls]....
(sofern jeweils eine *.docx, *.pptx und *.xlsx mit gleichen Namen befindet)
-> .... if exist "%ix" ...
... if exist idealer Weise verschoben werden.
... Löschung ... wäre ... auch in Ordnung.
-> ... Move "%i" "i:\Archiv\"
-> oder ... DEL "%i"

Für alle .ppt.x dann
for /R "d:\einVerzeichnis" %i in (*.ppt) do if /i [%~xi] EQU [.ppt] if exist "%ix" Move "%i" "i:\Archiv\"
Du kannst natürlich auch die (*.ppt, *.doc, *, xls) -extensions in einer FOR-Anweisung zusammenfassen; der DIR Befehl kann ohnehin ein "DIR *.doc *.xls *.ppt)".

Grüße
Biber
Bitte warten ..
Mitglied: Endoro
04.06.2013, aktualisiert um 14:08 Uhr
Also, ist doch ganz OK, nichts was du verstecken müsstest.

Vorschlag:
01.
@echo off &setlocal 
02.
set "startfolder=." 
03.
for /r "%startfolder%" %%i in (*.doc,*.ppt,*.xls) do if exist "%%~fix" echo move "%%~fi" "X:\Backup Folder"
Es wird ausgehend von %startfolder% der Verzeichnisbaum rekursiv durchsucht.
Wenn eine Datei *.docx,*.pptx,*.xlsx existiert, wird die entsprechende *.doc,*.ppt,*.xls verschoben.
Wenn es passt, entferne das Wort echo vor move.

Gruss!

PS: siehe @Biber: wenn eine *.*x existiert, wird die verschoben falls es noch eine *.*xx gibt.
Bitte warten ..
Mitglied: dervik
04.06.2013 um 14:10 Uhr
Ah, nun hab ichs! Vielen Dank!
Bitte warten ..
Mitglied: Endoro
04.06.2013 um 14:24 Uhr
Um den Rest vom Restrisiko auzuschalten, kann noch eine Sicherheits-Forschleife eingebaut werden:
01.
@echo off &setlocal 
02.
set "startfolder=."  
03.
for %%a in (.doc,.ppt,.xls) do for /r %%i in (*%%a) do if "%%~xi"=="%%a" if exist "%%~fix" echo move "%%~fi" "X:\Backup Folder"


Gruss!
Bitte warten ..
Mitglied: dervik
04.06.2013 um 14:35 Uhr
Du schreibst (...)"%%~fix" echo move "%%~fi"(...) wieso einmal "%%~fix" und dann "%%~fi" ?

Zitat von Endoro:
Also, ist doch ganz OK, nichts was du verstecken müsstest.

Vorschlag:
01.
> @echo off &setlocal 
02.
> set "startfolder=." 
03.
> for /r "%startfolder%" %%i in (*.doc,*.ppt,*.xls) do if exist "%%~fix" echo move "%%~fi" 
04.
> "X:\Backup Folder" 
05.
> 
Es wird ausgehend von %startfolder% der Verzeichnisbaum rekursiv durchsucht.
Wenn eine Datei *.docx,*.pptx,*.xlsx existiert, wird die entsprechende *.doc,*.ppt,*.xls verschoben.
Wenn es passt, entferne das Wort echo vor move.

Gruss!

PS: siehe @Biber: wenn eine *.*x existiert, wird die verschoben falls es noch eine *.*xx gibt.
Bitte warten ..
Mitglied: Endoro
04.06.2013 um 14:51 Uhr
Zitat von dervik:
Du schreibst (...)"%%~fix" echo move "%%~fi"(...) wieso einmal "%%~fix" und dann "%%~fi"
?


Wenn die Datei mit dem x existiert, kann die ohne x verschoben werden.

%%~fix == mit x
%%~fi == ohne x

Gruss!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Zwei PDF-Dateien zusammen führen per Batch (3)

Frage von hongziehong zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch : alle Dateien eines Ordners bearbeiten (1)

Frage von deguonkel zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (11)

Frage von DerFurrer zum Thema Windows Installation ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...

Multimedia & Zubehör
gelöst Iphone 6 prob (8)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Router & Routing
Cisco887VAW -VPN NAT-Freigabe (8)

Frage von Serial90 zum Thema Router & Routing ...