Top-Themen

Aktuelle Themen (A bis Z)

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

Relikte einer leicht fehlerhaften Wiederherstellung entfernen per Skript

Mitglied: spezpibat

spezpibat (Level 1) - Jetzt verbinden

27.03.2013, aktualisiert 15:18 Uhr, 1342 Aufrufe, 3 Kommentare

An alle Helfer, ich würde ein Skript zur Bereinigung von Dateien benötigen.
Die Dateinamen haben eine recht spezielles Muster, daher die Anfrage.

Kurze Vorgeschichte:

Nach einem Hardwareausfall musste ein Backup wieder auf den reparierten Server gespielt werden. Einige Zeit nach dieser Wiederherstellung finde ich nun in immer mehr Ordnern einige Relikte dieser Wiederherstellung.
Damit ist gemeint das in einigen Ordnern Dateien doppelt auftauchen.
Jedoch nicht im eigentlich Sinne doppelt.

richtige Datei:
Dateiname.doc
temporäre (aber noch vorhandene) Datei von Acronis:
Q8MV48DC~Dateiname.doc~

Diese temporären Dateien tauchen unabhängig vom Dateityp (Word, Excel, Jpeg, etc, ...) auf.
In der Masse gerechnet macht das ein ganze Menge temporäre Dateien die eine Menge Speicherplatz fressen aus.

Daher würde ich ein Skript benötigen, welches nach Möglichkeiten mit den Bordmitteln von W2k8 R1 eben diese Dateien findet und löscht.

Grundlegend sollte es so funktionieren:

1. Muster-Suche:
[ALPHANUM]{8,8}~[*]{1,}.DATEIENDUNG~

2. wenn Treffer, dann suche im selben Verzeichnis nach:
[*]{1,}.DATEIENDUNG

3. wenn 1. und 2. Treffer ergeben hat, lösche die Datei die 1. matcht


Da ich mit den Konsolen-Möglichkeiten in Windows nicht so sonderlich erfahren bin, wäre ich für jeden Lösungsansatz und jede Hilfe bei der Skript-Erstellung dankbar.


MfG SpezPiBat
Mitglied: bastla
27.03.2013, aktualisiert 03.04.2013
Hallo spezpibat!

Mit einer ewas weniger restriktiven Suche nach "*~*.*~" könnte das etwa so gehen:
01.
@echo off & setlocal 
02.
set "Basis=D:\Testordner" 
03.
set "Maske=*~*.*~" 
04.
set "Log=D:\Log.txt" 
05.
set "Delim=	" 
06.
 
07.
del "%Log%" 2>nul 
08.
for /f "delims=" %%i in ('dir /s/b/a-d "%Basis%\%Maske%" 2^>nul') do ( 
09.
    for /f "tokens=2 delims=~" %%a in ("%%~nxi") do if exist "%%~dpi%%a" >>"%Log%" echo "%%i"%Delim%"%%a" 
10.
)
Es wird zunächst nur eine Liste (in "D:\Log.txt") aller "passenden" Dateien erstellt. Das in Zeile 5 festgelegte Trennzeichen ist TAB - damit kann diese Liste zB leicht zur Kontrolle in Excel importiert bzw in weiterer Folge mit einem zweiten Batch für das Löschen der unnötigen Dateien verwendet werden.

Falls nicht nur ein Ordner, sondern eine gesamte Partition untersucht werden soll, müssste für zB Laufwerk "E:" die Zeile 2 so
set "Basis=E:"
- also ohne abschließenden "\" - geschrieben werden.

Grüße
bastla
Bitte warten ..
Mitglied: spezpibat
03.04.2013, aktualisiert um 10:13 Uhr
Vielen Dank bastla.

Heute bin ich mal dazu kommen das ganze probehalber durchlaufen zu lassen.
Die "Unschärfe" des RegEx ist wahrscheinlich nicht weiter schlimm, da die Wahrscheinlichkeit niedrig ist, dass ein Nutzer irgendwann mal eine Datei so benannt hat, dass das Muster darauf zutreffen könnte.

Allerdings habe ich beim überfliegen der Ergebnisse das gute alte Umlaut-Problem erkannt.

So wird beispielsweise
1F7UK115~Hochwasserschäden.xls~ in der Logdatei zu 1F7UK115~Hochwassersch„den.xls~
oder
R4H078QR~Aufmaß.pdf~ zu R4H078QR~Aufmaá.pdf~

Kennst du auch dafür eine Lösung?

Wie könnte denn die weitere Verwendung der Logdatei aussehen?
Ich habe zugegebener Maßen mit Batch-Dateien noch nicht viel gescripted, bin aber durchaus daran interessiert meine Kenntnisse in dieser Hinsicht zu erweitern.
Anders als eine Manpage unter Linux gibt allerdings die Hilfe unter Windows leider nicht viel her.
Bitte warten ..
Mitglied: bastla
03.04.2013 um 16:17 Uhr
Hallo spezibat!

Hinsichtlich der Umlaute könntest Du zwar vorweg auf die Codepage 1252 umschalten - also etwa
01.
@echo off & setlocal 
02.
set "Basis=D:\Testordner" 
03.
set "Maske=*~*.*~" 
04.
set "Log=D:\Log.txt" 
05.
set "Delim=	" 
06.
 
07.
for /f "tokens=2 delims=:." %%i in ('chcp') do set /a CP=%%i 
08.
chcp 1252 >nul 
09.
 
10.
del "%Log%" 2>nul 
11.
for /f "delims=" %%i in ('dir /s/b/a-d "%Basis%\%Maske%" 2^>nul') do ( 
12.
    for /f "tokens=2 delims=~" %%a in ("%%~nxi") do if exist "%%~dpi%%a" >>"%Log%" echo "%%i"%Delim%"%%a" 
13.
14.
chcp %CP% >nul
- allerdings sollen die Inhalte der "Log.txt" ohnehin wieder per Batch weiter verarbeitet (also vermutlich gelöscht) werden, sodass sich die Diskrepanz ASCII vs ANSI gar nicht auswirken würde ...
Wie könnte denn die weitere Verwendung der Logdatei aussehen?
Wenn Du nur stumpf alle in der "Log.txt" aufgelisteten Dateien löschen wolltest, würde eine Zeile der Art
for /f "delims=	" %%i in (D:\Log.txt) do echo del "%%i"
genügen - das "echo" vor dem "del" simuliert dabei zunächst das Löschen, indem der entsprechende Befehl nur angezeigt wird.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Windows Server

Image Wiederherstellung bei fehlerhaften Sektoren

gelöst Frage von steftsWindows Server7 Kommentare

Hallo, wir haben bei einem Server mit SBS 2011 folgendes Problem: Nach Ausfall und Tausch einer Festplatte im RAID1-Verbund, ...

Batch & Shell

Powershell Skript fehlerhaft?

Frage von SpeakerSTBatch & Shell3 Kommentare

Hallo, ich habe mir ein Powershell Skript geschriebe was bisher auch immer funktioniert hat aber unter einem Windows Server ...

Windows Tools

IFMEMBER logon Skript - Fehlerhafte Ergebnisse

Frage von Cougar77Windows Tools15 Kommentare

Guten Morgen, wieder mal ein super Phänomen Eigentlich läuft das Logon-Skript zum Verbinden der Laufwerke super, und es wird ...

CPU, RAM, Mainboards

Schneller PC für Office und leichte Bildbearbeitung

gelöst Frage von Anulu1CPU, RAM, Mainboards11 Kommentare

Hallo, ich bin auf der Suche nach einem schnellen PC für Office und leichte Bildbearbeitung. Am besten von der ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 11 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 13 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 13 StundenMicrosoft8 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser13 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...