Jak zmienić nazwę partii i usunąć ostatnie znaki

2

W systemie Windows XP próbuję wymyślić, jak grupować zmianę nazwy i usunąć ostatnie znaki nazw plików.

Przykład usunięcia ostatnich 4 znaków przed rozszerzeniem pliku: plik.doc.pdf -> plik.pdf

Mógłbym zrobić:

ren *.pdf *.
ren *.doc *.pdf

Chociaż nie działałoby to dobrze, jeśli w folderze znajdują się już inne pliki PDF.

Nie jestem pewien, czy potrzebne jest tutaj polecenie FOR.

Nieskończona pętla
źródło
Do usunięcia: co z użyciem dwóch kropek? ren *.doc. *.W ten sposób inne pliki z rozszerzeniem .doc nie zostaną dotknięte.
nixda
@nixda: *.doc.nie działa (nie znaleziono pliku).
Karan

Odpowiedzi:

2

Jeśli nazwy plików nie zawierają kropek innych niż na końcu (.doc.pdf), będą działać następujące czynności:

for /f "delims=." %a in ('dir /b *.doc.pdf') do ren "%~a.doc.pdf" "%~a.pdf"
Karan
źródło
Jeśli chcesz, możesz wstawić echowcześniej, renaby wyświetlić podgląd wszystkich operacji zmiany nazwy.
Karan
Karan, twoje polecenie działa, ale tylko jeśli wkleję je w oknie poleceń, a nie z pliku wsadowego. Jakieś pomysły?
Nieskończona pętla
Oczywiście w pliku wsadowym należy podwoić każdy znak%. Tak więc każdy% stanie się %%. Wypróbuj i przekonaj się!
Karan
BTW, jeśli ta i moja poprzednia odpowiedź pomogły ci nie zapomnieć zaakceptować ich za pomocą zielonego znacznika wyboru po lewej stronie (kliknij, aby się zapełnił). Dzięki!
Karan
@Karan - Istnieje zaskakująco proste rozwiązanie przy użyciu tylko jednej komendy REN :) Zobacz moją odpowiedź
dbenham
1

ren * *. -> will give you 'file.doc' repeat above command -> will give you 'file' ren * *.pdf -> will give 'file.pdf'

Zimba
źródło
-1

plik.doc.pdf -> plik.doc:

for %I in (*.doc.pdf) do rename "%~nI.pdf" "%~nI"

plik.doc -> plik.pdf

for %I in (*.doc) do rename "%~nI.doc" "%~nI.pdf"
STTR
źródło
Przepraszam, ale -1. Musisz użyć cudzysłowów, w przeciwnym razie oba polecenia zakończą się niepowodzeniem, jeśli nazwy plików zawierają spacje. Ponadto zamiast zmiany nazwy .doc.pdf na .pdf, twoje pierwsze polecenie faktycznie zmieni nazwę na .doc
Karan