Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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
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, 5468 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
gelöst In allen Textdateien eines bestimmten Pfades die Zeilen x bis Ende löschen (2)

Frage von Schloth zum Thema Batch & Shell ...

Windows Server
gelöst Windows 2012R2 kann Datei nicht löschen (2)

Frage von Akcent zum Thema Windows Server ...

Batch & Shell
gelöst Löschen von Dateien nach bestimmten Zeitmuster (8)

Frage von NetzwerkDude zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Routers & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Routers & Routing ...

Monitoring
Netzwerk-Monitoring Software (17)

Frage von Ghost108 zum Thema Monitoring ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Windows 10
Windows 10 Ordnerfreigabe (15)

Frage von Xaero1982 zum Thema Windows 10 ...