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.


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"

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'



-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"

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.