Làm cách nào để tìm và thay thế một ký tự trong tên tệp trong Windows 7 bằng Explorer?


16

Tôi muốn thay thế tất cả các ký tự gạch dưới ( _) bằng dấu cách ( ) trong tên tệp.

Làm thế nào tôi có thể làm điều này một cách nhanh chóng, khi tôi có nhiều _nhân vật để thay thế?


4
Như các câu trả lời đang chỉ ra, có / không / không có cách nào để làm điều này trong Explorer. Bạn cần một tập lệnh hoặc một tập tin đổi tên tập tin.
Shinrai

Câu trả lời:


20

vbScript nên làm điều đó cho bạn. Tạo một tệp có tên "rename_underscores.vbs" chứa nội dung sau.

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

Hãy chắc chắn rằng tên thư mục là chính xác. (Trong ví dụ này, tôi đã sử dụng c: \ test) Và sau đó nhấp đúp vào tệp của bạn để thực hiện đổi tên.


Lưu ý rằng cùng hoạt động với các thư mục, sử dụng 'Folder.SubFolders' thay vì 'Folder.Files'.
Max Hohenegger

làm việc hoàn hảo, chỉ cần chăm sóc con đường. +1 cảm ơn
Raj

4

Tôi khuyên bạn nên sử dụng công cụ của bên thứ 3 như Tiện ích đổi tên hàng loạt . Nó miễn phí và nó có trình cài đặt dưới 1 MB.


1
Nếu tên tệp là "this_is_a_test.ext" thì sao?
seanyboy

1
Tiện ích đổi tên hàng loạt là một ứng dụng TUYỆT VỜI. Nó rất linh hoạt và tôi không nghĩ bạn có thể đạt được điều tương tự với Explorer.
Alex Angelico

Lệnh dos sẽ phức tạp hơn thế một chút. Tôi sẽ chế giễu một cái.
RJFalconer

3

Đây là trong các lĩnh vực của một tập tin bat. Tạo một tệp bat (Mới-> Tệp văn bản, đổi tên phần mở rộng thành .bat) sau đó sao chép các phần màu xanh bên dưới vào đó.

Tôi sẽ chia nó thành nhiều phần và giải thích những gì nó đang làm.


In trạng thái hiện tại của thư mục để so sánh sau

dir /b

Liệt kê các tệp trong thư mục, sau đó cho tất cả các tệp có dấu gạch dưới và kết thúc bằng .txt, gọi ProcessFile trên chúng.

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

Cú pháp "str =% str: x = y%" thay thế các trường hợp của x bằng y. Trong trường hợp này, chúng tôi thay thế "_" bằng không có gì

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

Đó là nó!

Bây giờ nó chỉ in những gì đã thay đổi để chúng tôi có thể xác nhận nó hoạt động như mong đợi;

:finished
echo ----
dir /b

Kết quả (Không phải là một phần của tập tin bat)

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

2

Như những người khác đã đề cập, không có cách nào để thực hiện chính xác những gì bạn muốn mà không sử dụng tập lệnh hoặc tập tin bó. Chẳng hạn, trong PowerShell, bạn có thể thực hiện những gì bạn muốn khá dễ dàng:

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

Chỉ cần đảm bảo thay thế "C: \ Users \ MyName \ Documents \ MyDirectory" bằng đường dẫn đến thư mục của bạn.

Để biết thêm chi tiết và các tùy chọn khác, bao gồm một số điều bạn có thể làm chỉ bằng Explorer, xem tại đây: http://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways- đổi tên-nhiều tập tin /


2

Đây là tập lệnh đổi tên ruby ​​hàng loạt của tôi . Tôi chưa sử dụng các công cụ đổi tên hàng loạt khác nhưng tôi nghĩ kịch bản của tôi rất dễ sử dụng và rất linh hoạt. Đây là lệnh cho trường hợp của bạn:

ruby bren.rb *_* "_/ "

Tôi đã thiết lập môi trường windows của mình theo cách bren.rb có thể được thực thi như một tệp thực thi từ bất kỳ thư mục nào.



1

Điều này không trả lời rõ ràng câu hỏi ('.. trong Explorer'), nhưng tôi đã tìm thấy phần mềm hữu ích nhất để làm điều này là Adobe Bridge (Miễn phí)

  1. Chọn tất cả các tệp trong Bridge
  2. Nhấp chuột phải> Đổi tên hàng loạt

Đã thêm tiền thưởng: Hỗ trợ Regex!

Ảnh chụp màn hình

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.