Fixe Nummer vor Dateinamen?

2 Antworten

Leider gibt er noch einen Fehler in der Konsole aus: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

kann ich nicht nachvollziehen... bie mir funktioniert es:

set /p a="Laufende Nummer: "
set ext=%a%
for /f "tokens=*" %%i in ('dir /a:-d /b *.docx *.pdf') do  ren "%%i" "%ext% %%~nxi"

wenn du nur einige Dateiendungen ausschließen möchtest. Kannst Du den Output von dir mit findstr filtern.

zb.

  rem  schließt Zeichenketten mit .cmd, .ps1, .lnk am Zeilenende aus
dir /a-d /b ^|findstr /vr "\.cmd$ \.ps1$ \.lnk$"'

in Deinem For/f-Loop sähe dass folgendermaßen aus:

for /f "tokens=*" %%i in ('dir /a-d /b ^|findstr /vr "\.cmd$ \.ps1$ \.lnk$"') do  echo ren "%%i" "%ext% %%~nxi"
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
willom200 
Fragesteller
 25.01.2023, 11:28

Das mit dem "token" hat wunderbar funktioniert. Vielen Dank.

0
willom200 
Fragesteller
 25.01.2023, 11:41
@willom200

Vielleicht kannst du mir noch kurz helfen. 2 Dateien sollen in eine zip. Wie im Muster. Mit einer Datei funktioniert es. Hier der Original-Befehlssatz:

for %%i in ("DATEI1_*.pdf") do "C:\Program Files\7-Zip\7z.exe" a -tzip "%%~ni.zip" "%%~dpni.*"

for %%i in ("DATEI1_*.pdf" "DATEI2_*.pdf") do "C:\Program Files\7-Zip\7z.exe" a -tzip "DATEI1.zip"

Danke schon mal im voraus.

VG

Bernd

0

Indem du dem DIR-Befehl sagst, er soll nur *.docx und *.pdf Dateien verarbeiten:

...  ('dir /a:-d /b *.docx *.pdf')...

/-p kannst du weglassen; ist sogar falsch. Es gibt /p; /-p gibt es nicht.

willom200 
Fragesteller
 24.01.2023, 15:28

Danke erstmal für deine Antwort und die Bemühungen. Leider gibt er noch einen Fehler in der Konsole aus: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

0
Tilo2300  24.01.2023, 18:10
@willom200

Das hier funktioniert problemlos:

@echo off
echo.

set /p a="Laufende Nummer: "
SET Ext=%a%

for /f "tokens=*" %%I IN ('dir /a:-d /b *.docx *.pdf') do (
  echo Umbenennung von
  echo  "%%I"
  echo nach
  echo  "%ext% %%~nxI"
  echo --------------------
  ren "%%I" "%ext% %%~nxI"
)
echo.
PAUSE

Kann es sein, daß du die falschen Anführungszeichen in der Klammer verwendest? Das müssen die geraden Striche ( ' ) auf der #-Taste (links neben ENTER) sein! Bei dir sieht es eher nach dem Akzent ( ` ) rechts neben der ß/?-Taste aus!

0