Jak znaleźć i zamienić znak w nazwach plików w systemie Windows 7 za pomocą Eksploratora?


16

Chcę zastąpić wszystkie znaki podkreślenia ( _) spacją ( ) w nazwie pliku.

Jak mogę to zrobić szybko, gdy mam wiele _znaków do zastąpienia?


4
Jak wskazują odpowiedzi, nie ma / nie można tego zrobić w Eksploratorze. Potrzebujesz nazwy skryptu lub nazwy pliku wsadowego.
Shinrai

Odpowiedzi:


20

vbScript powinien zrobić to za Ciebie. Utwórz plik o nazwie „rename_underscores.vbs” zawierający następujące elementy.

Set objFso = CreateObject("Scripting.FileSystemObject")
Set Folder = objFSO.GetFolder("c:\test\")

For Each File In Folder.Files
    sNewFile = File.Name
    sNewFile = Replace(sNewFile,"_"," ")
    if (sNewFile<>File.Name) then 
        File.Move(File.ParentFolder+"\"+sNewFile)
    end if

Next

Upewnij się, że nazwa folderu jest poprawna. (W tym przykładzie użyłem c: \ test) A następnie kliknij dwukrotnie plik, aby dokonać zmiany nazwy.


Zauważ, że to samo działa z folderami, używając „Folder.SubFolders” zamiast „Folder.Files”.
Max Hohenegger

działając idealnie, wystarczy dbać o ścieżkę. +1 dzięki
Raj

4

Polecam korzystanie z zewnętrznego narzędzia, takiego jak Bulk Rename Utility . Jest bezpłatny i ma instalatora mniej niż 1 MB.


1
Co jeśli nazwa pliku to „this_is_a_test.ext”?
seanyboy

1
Bulk Rename Utility to WIELKIE aplikacje. Jest bardzo wszechstronny i nie sądzę, że możesz osiągnąć to samo dzięki Explorer.
Alex Angelico,

Polecenie dos byłoby nieco bardziej skomplikowane. Wyśmieję jednego.
RJFalconer,

3

Jest to dziedzina pliku dos bat. Utwórz plik nietoperza (Nowy-> Plik tekstowy, zmień nazwę rozszerzenia na .bat), a następnie skopiuj do niego niebieskie sekcje poniżej.

Podzielę to na sekcje i wyjaśnię, co robi.


Wydrukuj aktualny stan katalogu do późniejszego porównania

dir /b

Lista plików w katalogu, a następnie dla wszystkich plików, które zawierają podkreślenie i kończą się na .txt, wywołaj na nich ProcessFile.

for %%f in (*_*.txt) do call :ProcessFile %%f
goto :finished

Składnia „str =% str: x = y%” zastępuje wystąpienia x przez y. W tym przypadku zastępujemy „_” niczym

:ProcessFile
set str=%1
rename %1 %str:_=%
goto :eof

Otóż ​​to!

Teraz drukuje tylko to, co zostało zmienione, dzięki czemu możemy potwierdzić, że działa zgodnie z oczekiwaniami;

:finished
echo ----
dir /b

Wyniki (nie jest częścią pliku nietoperza)

baz_ing.txt
big_rawr.foo
foo_bar.txt
multiple_underscores_test.txt
----
bazing.txt
big_rawr.foo
foobar.txt
multipleunderscorestest.txt

2

Jak wspomnieli inni, nie można zrobić dokładnie tego, co chcesz bez użycia skryptu lub pliku wsadowego. Na przykład w PowerShell możesz dość łatwo robić to, co chcesz:

cd "C:\Users\MyName\Documents\MyDirectory"
Dir | Rename-Item –NewName { $_.name –replace "_"," " }

Pamiętaj tylko o zastąpieniu „C: \ Users \ MyName \ Documents \ MyDirectory” ścieżką do katalogu.

Aby uzyskać więcej szczegółów i inne opcje, w tym niektóre rzeczy, które możesz zrobić za pomocą Eksploratora, zobacz tutaj: http://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways- zmienić nazwę wielu plików /


2

Oto moja partia zmienia nazwę skryptu ruby . Nie korzystałem z innych narzędzi do zmiany nazw partii, ale myślę, że mój skrypt jest bardzo łatwy w użyciu i bardzo wszechstronny. Oto polecenie dla twojej sprawy:

ruby bren.rb *_* "_/ "

Skonfigurowałem środowisko Windows w taki sposób, że bren.rb może być wykonywany jako plik wykonywalny z dowolnego katalogu.



1

To nie odpowiada jednoznacznie na pytanie („.. w Eksploratorze”), ale znalazłem najbardziej przydatne oprogramowanie do tego celu: Adobe Bridge (bezpłatny)

  1. Wybierz wszystkie pliki w programie Bridge
  2. Kliknij prawym przyciskiem myszy> Zmień nazwę partii

Dodano bonus: Obsługuje Regex!

Zrzut ekranu

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.