Fixe Nummer vor Dateinamen?
Hallo,
ich habe hier ein Abfrage-Script dass mir die eingegebene Nr. vor die Datei setzt.
set /p a="Laufende Nummer: "
SET Ext=%a%
FOR /f "usebackq delims=" %%I IN (`dir /a-d/b/-p`) DO ren "%%I" "%Ext% %%~nxI"
Wie schaffe ich es dass die ausführende batch-Datei nicht umbenannt wird bzw. wie kann ich hier nur 2 umzubenennende Dateitypen angeben (*.docx und *.pdf)
Danke für Eure Hilfe.
VG Bernd
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"
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
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.
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.
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!
Das mit dem "token" hat wunderbar funktioniert. Vielen Dank.