Alles mit Ausnahmen aus dem Befehl löschen

Alles mit Ausnahmen aus dem Befehl löschen

Ich habe einen Ordner mit ungefähr 50 verschiedenen Dateien (NAME1.jpg, NAME2.jpg, NAME3.jpg ...).

Ich habe ein Programm, das ausgeführt wird und jede Datei in etwa 4 verschiedene Dateien aufteilt und sie umbenennt (NAME1-0.jpg, NAME1-1.jpg, NAME2-0.jpg, NAME2-1.jpg...).

Ich möchte eine BAT-Datei erstellen, die ausgeführt wird und alle Dateien löscht, die keine *-0.jpg-Dateien sind.

Das Nächste, was ich bisher erreicht habe, ist die folgende Zeile:

for %i in (*) do if not %i == "*.jpg" del "%i"

Aber dadurch werden einfach alle Dateien im Ordner gelöscht, einschließlich der -0.jpg-Dateien, die ich speichern möchte.

gibt es einen besseren Spruch?

Antwort1

Ich möchte alle Dateien löschen, die nicht *-0.jpg-Dateien sind.

Ich habe ein Programm, das ausgeführt wird und jede Datei in etwa 4 verschiedene Dateien aufteilt und sie umbenennt (NAME1-0.jpg, NAME1-1.jpg, NAME2-0.jpg, NAME2-1.jpg...).

Verwenden Sie die folgende Batchdatei (test.cmd):

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b NAME?-?.jpg') do (
  rem get file name
  set _fname=%%~ni
  rem get last 2 characters of file name
  set _last2=!_fname:~-2!
  if [!_last2!] NEQ [-0] del "%%i"
  )

Beispiel:

F:\test>dir *.jpg
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

08/12/2015  23:51                 0 NAME1-0.jpg
08/12/2015  23:51                 0 NAME1-1.jpg
08/12/2015  23:51                 0 NAME2-0.jpg
08/12/2015  23:51                 0 NAME2-1.jpg
               4 File(s)              0 bytes
               0 Dir(s)  1,776,919,613,440 bytes free

F:\test>test
F:\test>dir *.jpg
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

08/12/2015  23:51                 0 NAME1-0.jpg
08/12/2015  23:51                 0 NAME2-0.jpg
               2 File(s)              0 bytes
               0 Dir(s)  1,776,919,613,440 bytes free

Weitere Informationen

  • Ein AZ-Index der Windows CMD-Befehlszeile- Ein hervorragendes Nachschlagewerk zu allem, was mit der Windows-Eingabeaufforderung zu tun hat.
  • dir- Zeigt eine Liste der Dateien und Unterordner an.
  • aktivierte verzögerte Erweiterung- Die verzögerte Erweiterung führt dazu, dass Variablen zur Ausführungszeit und nicht zur Analysezeit erweitert werden.
  • für /f- Befehl mit den Ergebnissen eines anderen Befehls wiederholen.
  • Wenn- Führen Sie einen Befehl bedingt aus.
  • Satz- CMD-Umgebungsvariablen anzeigen, festlegen oder entfernen. Mit SET vorgenommene Änderungen bleiben nur für die Dauer der aktuellen CMD-Sitzung bestehen.

verwandte Informationen