System Windows zmienia nazwę środkowej nazwy pliku za pomocą interfejsu CLI?

13

Oryginalne pliki

File 15 - Example.txt
File 2 - Example.txt
File 22 - Example.txt
File 3 - Example.txt
File 4 - Example.txt
File 5 - Example.txt

Pożądane wyjście

File 15 - Example.txt
File 02 - Example.txt
File 22 - Example.txt
File 03 - Example.txt
File 04 - Example.txt
File 05 - Example.txt

Nazwę pojedynczego pliku można łatwo zmienić ren.

ren "File 2 - Example.txt" "File 02 - Example.txt"

Czy można zbiorczo zmienić nazwę za pomocą systemu Windows renlub renamenarzędzia?

Sabrina
źródło
1
Ładne bezpłatne narzędzie ułatwiające wykonywanie tego typu zadań .... bulkrenameutility.co.uk/Main_Intro.php
Moab
Zgadzam się. Mogę wymienić wiele rozwiązań opartych na GUI i zastanawiam się, dlaczego naleganie na CLI
Mawg mówi, aby przywrócić Monikę
@Mawg, czy możesz wykonywać skrypty za pomocą tych narzędzi GUI?
Sabrina
Mógłbym - używając AutoIt - ale prawdopodobnie odradzałbym to :-) Po prostu zastanawiałem się, czy nie było twardych wymagań dla CLI, a teraz wydaje się, że jest. Dzięki za wyjaśnienie
Mawg mówi o przywróceniu Moniki

Odpowiedzi:

13

Czy można by zbiorczo zmienić nazwę za pomocą narzędzia do Ren lub Windows?

Tak, ale wymaga pliku wsadowego.

test.cmd:

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4" %%i in ('dir /b *Example.txt') do (
  rem pad 2nd token with leading zero
  set _num=0%%j
  set _num=!_num:~-2!
  ren "%%i %%j %%k %%l" "%%i !_num! %%k %%l"
  )
endlocal

przykład:

> dir *Example.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 2 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
03/01/2019  11:30                 0 File 3 - Example.txt
03/01/2019  11:30                 0 File 4 - Example.txt
03/01/2019  11:30                 0 File 5 - Example.txt
               6 File(s)              0 bytes
               0 Dir(s)  1,075,134,230,528 bytes free

> ..\test

> dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:54    <DIR>          .
03/01/2019  11:54    <DIR>          ..
03/01/2019  11:30                 0 File 02 - Example.txt
03/01/2019  11:30                 0 File 03 - Example.txt
03/01/2019  11:30                 0 File 04 - Example.txt
03/01/2019  11:30                 0 File 05 - Example.txt
03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
               6 File(s)              0 bytes
               2 Dir(s)  1,075,134,230,528 bytes free

Dalsza lektura

DavidPostill
źródło
17

Ta jedna linijka PowerShell rozszerzy wszystkie liczby w nazwie pliku do dwóch miejsc .PadLeft(2,'0'):
(i pozostawi numery z większą liczbą miejsc nietkniętych)

Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}

być na temat, zawinięte w plik cmd linii / pliku wsadowego:

Powershell -Nop -C "Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}"

Aby być bezpiecznym przed wykonaniem poleceń, dołącz oba

  • -Confirm który pyta przed zmianą nazwy
  • -WhatIfktóry zawiera listę wszystkich nazw, które wykonałby bez parametru

tuż przed ostatnim "

LotPings
źródło
3

Edycja: Właśnie zauważyłem, że to pytanie dotyczy konkretnie zmiany nazwy z wiersza poleceń, więc nie odpowiada bezpośrednio na pytanie ... Na razie je zatrzymam, mając nadzieję, że przyda się innym.


Total Commander Menedżer plików oferuje doskonałe narzędzie bulk zmienić. Zawiera wiele funkcji, w tym podgląd zmiany nazwy, różne maski zmiany nazwy, wyrażenia regularne, zmianę nazw plików w całej hierarchii folderów i wiele więcej. Jednocześnie jest dość łatwy w użyciu.

Oto zrzut ekranu pokazujący użycie:

Przykład zmiany nazwy Total Commander Multi

Krok po kroku:

  1. Pobierz i uruchom Total Commander.
  2. Nativate do folderu z plikami do zmiany nazwy.
  3. Zaznacz pliki do zmiany nazwy:
    • Opcja 1 - Ctrl+ Ado oznaczania wszystkich plików w folderze.
    • Opcja 2 - Oznacz pliki jeden po drugim, używając Spaceklawisza lub myszy prawym przyciskiem myszy.
    • Opcja 3 - Otwórz „Znajdź pliki” ( Alt+ F7), wpisz *.txtw polu „Wyszukaj”, kliknij „Rozpocznij wyszukiwanie”, naciśnij „Feed to listbox”, a następnie zaznacz pliki za pomocą Ctrl+ A. Użyj tej techniki, jeśli chcesz zmienić nazwę plików również w folderach wewnętrznych.
  4. Naciśnij Ctrl+, Maby otworzyć narzędzie Multi-Rename.
  5. Ustaw żądane wartości w polach „Wyszukaj” i „Zamień na”. Jeśli używasz wyrażenia regularnego, zaznacz pole RegEx.
  6. Kliknij „Start!”.
Valiano
źródło
-2

ren *.bat *.txtbędzie działać, aby zmienić nazwy rozszerzeń na wszystkich pasujących plikach zachowujących drugą część nazwy. Czy nie możesz nadużywać tego do uruchamiania sekwencji renpoleceń?

  • ren "File *" "File 0*"
  • ren "File 00*" "File 0*"
  • (radzić sobie z wiszącymi resztkami jak File 022 - Example.txt
Douglas Held
źródło
1
To NIE jest pomocne, czy sprawdziłeś, co zrobi twoje polecenie? 2-> 0, 22-> 02, 15-> 05.
LotPings,
Nie, nie mam systemu operacyjnego Windows, więc go nie wypróbowałem. Ale od lat pamiętam, że REN może to zrobić. W każdym razie chciałem zasugerować.
Douglas odbył się