TeamViewer Motive 4

Nur bestimme Dateien löschen per Programm?

phaaaz

Lieutenant
Registriert
Okt. 2011
Beiträge
990
Hallo, gibt es ein Programm wo man ein bzw. mehrere Wörter reinschreibt und dem Programm einen Ordner vorgibt und das Programm löscht dann alle Dateien mit dem gennanten Wort?
Weil ich habe das Problem, dass ich per 'DownThemAll' 40.000 Bilder von ca. 100 Seiten gedownloaded habe und nun alle Bilder mit thumbnail im Namen löschen muss.
 
Mach eine Batch Datei mit dem Inhalt
Code:
del /S /Q C:\dein\pfad\mit\den\bildern\*maske_für_wörter*
 
Das heißt ich erstelle jetzt eine Datei mit dem Namen z.B. 'Löschen.bat' und füge hinzu 'del /S /Q D:\SORTIEREN*thumbnail*' ?

Edit: Hat geklappt, danke :)

Edit2: Wenn ich jetzt Dateien umbennenen will, was muss ich in die .bat schreiben.
Also ich habe Bilder die alle ganz verschieden heißen und ich möchte jetzt den Ordner in dem sie sich befinden 'anwählen' und alle Dateien so umbennen: '00001, 00002, 00003, 00004' etc. Wie stelle ich das an?
 
Zuletzt bearbeitet:
Wie willst du diese umbenennen? Ich geh mal davon aus, dass du diese einfach hochzählen willst. Mit vorangestellter Null wirds schwer in einer Batch, aber mal ohne:
Code:
setlocal enabledelayedexpansion
set i=0
for /f "delims=;" %%x in ('dir /A:-D /B C:\dein\pfad\*.*') do (
  set /A i=!i!+1
  ren "%%x" "!i!%%~xx"
)
Mit vorangestellten Nullen:
Code:
setlocal enabledelayedexpansion
set i=0
for /f "delims=;" %%x in ('dir /A:-D /B C:\dein\pfad\*.*') do (
  set /A i=!i!+1
  set in=!i!
  
  if !in! lss 10 set in=0!in!
  if !in! lss 100 set in=0!in!
  if !in! lss 1000 set in=0!in!
  :: so viele Nullen wie du willst

  ren "%%x" "!in!%%~xx"
)
Den Block mit den ifs müsstest du jeweils so lange erweitern, bis du deine Stellenanzahl hast.
 
Zuletzt bearbeitet:
Wenn ich die Batch starte, geht das Fenster nur für eine Millisekunde auf und man erkennt 'Das System kann die angegebene Datei nicht finden'
Habe beide Varianten versucht..
 
Setz den Pfad mal noch vor %%x bzw. !in!%%~xx. Wenn du die Batch nicht im gleichen Verzeichnis ausführst, wird das Arbeitsverzeichnis genommen und somit musst du den Pfad zur Datei absolut angeben. Alternativ als erste Zeile ein cd C:\dein\pfad\ hinsetzen, damit das Arbeitsverzeichnis korrekt gesetzt ist. In der Schleife kannst du dann auf dir /A:-D /B .\*.* ausweichen (ist aber egal welche Variante du nimmst).
 
Versteh ich nicht, sorry ^^
Also das ist was ich jetzt eingetragen habe:
' setlocal enabledelayedexpansion
set i=0
for /f "delims=;" %%x in ('dir /A:-D /B D:\SORTIEREN\*.*') do (
set /A i=!i!+1
set in=!i!
if !in! lss 10 set in=0!in!
if !in! lss 100 set in=0!in!
if !in! lss 1000 set in=0!in!
:: so viele Nullen wie du willst

ren "%%x" "!in!%%~xx"
)'
Jetzt führt er das Skript zwar aus, aber es kommt wieder nur ca. 1 Sekunde das Fenster und es steht jetzt drin 'D:\SORTIEREN'
 
Mal komplett:
Code:
cd C:\dein\pfad\
setlocal enabledelayedexpansion
set i=0
for /f "delims=;" %%x in ('dir /A:-D /B .\*.*') do (
  set /A i=!i!+1
  set in=!i!
  if !in! lss 10 set in=0!in!
  if !in! lss 100 set in=0!in!
  if !in! lss 1000 set in=0!in!
  :: so viele Nullen wie du willst

  ren "%%x" "!in!%%~xx"
)
Alternativ mit gleichem Ergebnis:
Code:
set deinpfad=C:\dein\pfad\
setlocal enabledelayedexpansion
set i=0
for /f "delims=;" %%x in ('dir /A:-D /B %deinpfad%*.*') do (
  set /A i=!i!+1
  set in=!i!
  if !in! lss 10 set in=0!in!
  if !in! lss 100 set in=0!in!
  if !in! lss 1000 set in=0!in!
  :: so viele Nullen wie du willst

  ren "%deinpfad%%%x" "%deinpfad%!in!%%~xx"
)
 
Das ist was in der bat steht:
cd D:\SORTIEREN\
setlocal enabledelayedexpansion
set i=0
for /f "delims=;" %%x in ('dir /A:-D /B .\*.*') do (
set /A i=!i!+1
set in=!i!
if !in! lss 10 set in=0!in!
if !in! lss 100 set in=0!in!
if !in! lss 1000 set in=0!in!
:: so viele Nullen wie du willst

ren "%%x" "!in!%%~xx"
)

Das ist der Fehler, den ich bekomme:
D:\SORTIEREN>cd D:\SORTIEREN\
D:\SORTIEREN>setlocal enabledelayedexpansion
D:\SORTIEREN>set i=0
Syntaxfehler.
D:\SORTIEREN>

EDIT: Okay vergiss es, ich habe das ' :: so viele Nullen wie du willst' nicht gelöscht :D
Hat funktioniert, danke
 
Zuletzt bearbeitet:
Zurück
Oben