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, 2351 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.

Mit freundlichen Grüßen
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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...