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

Alle Dateien löschen, die nicht in Textdatei stehen

Frage Entwicklung Batch & Shell

Mitglied: watchdogg

watchdogg (Level 1) - Jetzt verbinden

04.06.2009, aktualisiert 09:38 Uhr, 5455 Aufrufe, 5 Kommentare

Hallo Leute,

wie der Titel schon sagt, möchte ich gern alle Dateien in einem Verzeichnis löschen, welche nicht in der Textdatei aufgelistet sind.

Hier gibt es ja schon eine gute Lösung:

http://www.administrator.de/index.php?content=46770

Es ist nur so:

In der Textdatei stehen aktuelle Dateien, d.h.
es greifen andere User auf diese Dateien, die in der Textdatei stehen zu.
Ich kann diese also nicht verschieben, so wie es im angegebenen Beitrag steht.

Meine Frage ist nun, kann ich die Dateien die NICHT in der Textdatei stehen irgendwie direkt verschieben, ohne die anderen Dateien temporär zu verschieben?

Vielen Dank,

MfG watchdogg
Mitglied: LotPings
04.06.2009 um 10:22 Uhr
Hallo watchdogg,

versuchs mal hiermit (Es ist Unklar ob du jetzt löschen oder verschieben willst)

01.
@Echo off 
02.
Set "Base=C:\Test\Löschen" 
03.
Set "Dest=C:\Test\Verschieben\" 
04.
Set "Ausnahmen=C:\Test\Ausnahmen.txt" 
05.
Pushd "%Base%" 
06.
For /F "Delims=" %%A in ( 
07.
  'Dir /B * ^|Findstr /V /I /G:"%Ausnahmen%" ' 
08.
    ) Do Echo DEL/Move %%A "%Dest%" 
09.
POPD
Ungetestet, den DO Teil kannst du wenn die Ausgabe per Echo passt entsprechend anpassen.

Gruß
LotPings
Bitte warten ..
Mitglied: watchdogg
04.06.2009 um 15:07 Uhr
@LotPings

1000 Dank erstmal,

funktioniert super, nur noch ein kleineres Manko:
Wenn in der "Ausnahmen.txt" beispielsweise:
bla
blubb
steht.
Dann würde er alle Dateien, die diese Zeichenkette im Dateinamen beinhalten,
Also beispielsweise:
bla
blubb
xblubb
blase
blackout
blubberei
...und andere äußerst sinnfreie zeichenketten...
nicht verschieben.
Besser wäre es wenn er nur:
bla
blubb
stehen lassen würde.

Habe es schon mit der findstr - Option c: probiert. Bisher jedoch ohne Erfolg.

MfG watchdogg
Bitte warten ..
Mitglied: LotPings
04.06.2009 um 16:33 Uhr
Deine sinnfreien Beispiele helfen mir nicht weiter,
wie erstellst du denn die Ausnahmen?

Wenn die Dateinamen vol übereinstimmen müssen, setze in die Ausnahmen Datei ein
^vor und hinter die Namen ein $

Das sind RegEx Anker für Zeilenanfang und -ende.

Gruß
LotPings
Bitte warten ..
Mitglied: watchdogg
05.06.2009 um 07:37 Uhr
Hab das mit den RegEx Ankern so gelöst:


01.
@echo off 
02.
for /f %%i in (quelle.txt) do echo ^%%i$>>ziel.txt

Und dann deinen oberen Code verwendet --> klappt wunderbar.

Ich danke dir wie verrückt LotPings.
Bitte warten ..
Mitglied: LotPings
05.06.2009 um 09:16 Uhr
Freut mich wenns klappt watchdogg.

Wäre auch schön wenn du den Beitrag auf gelöst setzen würdest.

Gruß
LotPings
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch mit forfiles - Dateiendung filtern - Dateien löschen (2)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Windows Server
gelöst PS Dateien löschen mit 0kb (4)

Frage von Florian86 zum Thema Windows Server ...

Windows Server
Dateien löschen mit Forfiles, welche älter als x Tage sind (3)

Frage von kellbidden zum Thema Windows Server ...

Entwicklung
Versteckte .(Punkt)Dateien löschen (3)

Frage von DarkJM zum Thema Entwicklung ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (44)

Frage von sabines zum Thema Internet ...

Netzwerke
Wie erstelle ich ein Intranet (19)

Frage von Leonardnet zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Eintägige Netzwerkunterbrechung trotz Backupleitung (15)

Frage von iAmbricksta zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2012 R2 - Zugriff Verweigert bei jeglicher Tätigkeit (13)

Frage von DarkLevi zum Thema Windows Server ...