Jak dodać prefiks do wszystkich plików i folderów w folderze? (Windows)

14

Następujące polecenie zmienia tylko nazwy plików, ale nie folderów.

for %a in (*) do ren "%a" "00_%a"

MatMis
źródło
Czy absolutnie musisz użyć pliku wsadowego? Czy nie możesz użyć do tego programu takiego jak Rename Master?
Dour High Arch

Odpowiedzi:

15

Następujące polecenie zmienia tylko nazwy plików, ale nie folderów.

for %a in (*) do ren "%a" "00_%a"

Uwagi:

  • Używanie forjak wyżej nie jest zalecane.
  • Istnieje możliwość wielokrotnej zmiany nazwy plików.
  • Zobacz poniżej powód dlaczego.

Użyj następujących cmdpoleceń w powłoce:

for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"

W pliku wsadowym (wymienić %z %%):

for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"

Uwaga:

Jest krytyczny , że używasz FOR /F, a nie prostego FOR.

W FOR /Fgromadzi całą wyniku DIRpolecenia zanim rozpocznie Iterowanie, natomiast prosta FORzaczyna Iterowanie po bufor wewnętrzny jest pełny, który dodaje ryzyko zmiany nazwy tego samego pliku wielokrotnie.

jak zalecił dbenham w swojej odpowiedzi, aby dodać „tekst” na końcu wielu nazw plików :


Dalsza lektura

DavidPostill
źródło
0

Aby wykonać pętlę For dla folderów (katalogów) zamiast plików, wystarczy włączyć /Dprzełącznik.

for /D %a in (*) do ren "%a" "00_%a"

Od for /?:

FOR / D% zmienna IN (zestaw) DO polecenie [parametry-polecenia]

If set contains wildcards, then specifies to match against directory
names instead of file names.
Ƭᴇcʜιᴇ007
źródło
rendziała na folderach. Ograniczeniem jest to, że „nie można określić innego dysku lub ścieżki dla celu.
DavidPostill
@DavidPostill Tak, to był stary nawyk wkradający się, zmieniłem go z powrotem na Ren.
ᴇcʜιᴇ007
Możesz zrobić zarówno pliki, jak i foldery za pomocą jednego polecenia (patrz moja odpowiedź). Podejrzewam, że for /dmoże również występować problem z wielokrotnym przetwarzaniem wartości (zobacz także moją odpowiedź).
DavidPostill