如何使用资源管理器在Windows 7中查找和替换文件名中的字符?


15

我想用文件名中_的空格()替换所有下划线字符()。

当我需要_替换大量字符时,如何快速完成此操作?


4
正如答案所示,在资源管理器中有/无法做到这一点。您需要一个脚本或批处理文件重命名器。
Shinrai 2010年

Answers:


19

vbScript应该为你做。创建一个名为“rename_underscores.vbs”的文件,其中包含以下内容。

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

确保文件夹名称正确。(在示例中,我使用了c:\ test)然后双击您的文件进行重命名。


请注意,同样适用于文件夹,使用'Folder.SubFolders'而不是'Folder.Files'。
Max Hohenegger

3

这属于dos bat文件的范围。创建一个bat文件(New-> Text file,将扩展名重命名为.bat),然后将下面的蓝色部分复制到其中。

我将它分成几部分并解释它在做什么。


稍后打印comparasson目录的当前状态

dir /b

列出目录中的文件,然后对于包含下划线并以.txt结尾的所有文件,在它们上面调用ProcessFile。

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

语法“str =%str:x = y%”用y替换x的实例。在这种情况下,我们用什么都不替换“_”

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

而已!

现在它只打印已更改的内容,以便我们确认它按预期工作;

:finished
echo ----
dir /b

结果(不属于bat文件)

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


2

正如其他人所提到的,如果不使用脚本或批处理文件,就无法完全按照自己的意愿行事。例如,在PowerShell中,您可以非常轻松地执行您想要的操作:

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

只需确保将“C:\ Users \ MyName \ Documents \ MyDirectory”替换为目录的路径。

有关更多详细信息和其他选项,包括您可以使用资源管理器执行的一些操作,请参阅此处:http//www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways-对重命名,多文件/


2

这是我的批量重命名ruby脚本。我没有使用其他批量重命名工具,但我认为我的脚本非常易于使用且功能多样。以下是您案例的命令:

ruby bren.rb *_* "_/ "

我已经以这样的方式设置了我的windows环境bren.rb可以作为任何目录中的可执行文件执行。



1

这没有明确回答问题('..在资源管理器'),但我发现最有用的软件是Adobe Bridge(免费)

  1. 选择Bridge中的所有文件
  2. 右键单击>批量重命名

额外奖励:支持正则表达式!

屏幕截图

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.