批处理文件代码用于查找并重命名所有以空格结尾的文件?

批处理文件代码用于查找并重命名所有以空格结尾的文件?

我们在 Windows 2008 服务器上托管 Macintosh 文件。它们包含以下文件

somegraphic.eps
._somegraphics.eps (hidden)

很多时候,我们的用户会在文件中添加非标准字符,例如文件名末尾的项目符号和空格。它允许他们添加字符,但一旦他们按下 Enter 键,它就不会让他们更改文件名。

两个问题:

  1. 在批处理文件中,如何获取以空格结尾的所有文件的列表?
  2. 在批处理文件中,如何批量重命名所有文件并删除不需要的字符?

对于这个问题:

  1. 如何获取系统中所有文件的列表、它们的修改时间以及 XML 或易于数据导入的格式?

讨论:

我尝试使用 dir/x 文件名重命名,但隐藏属性似乎阻止了该操作。

通常,我会执行 dir/b/s 来以裸格式进行完整的目录搜索,但它不包括修改时间。

答案1

创建一个文件,文件末尾有一个空格:

echo Foo >  "\\?\c:\rcs\boo.txt "

在批处理文件中列出系统上的文件,并附上修改日期和裸列表:

for /f "tokens=*" %%A in ('dir /s/b %target%') do @echo %%~tA,"%%~A"

例如,包含“boo.txt”在内的三个文件的目录如下所示:

, "C:\rcs\boo.txt "
02/03/2011 17:48, "C:\rcs\foo1.txt"
02/03/2011 17:47, "C:\rcs\foo2.txt"

注意文件日期缺失。这可能说明文件名不合法。

查看 filelist.exe 中的 [http://www.jam-software.com/freeware/]。该程序创建了一个扩展列表(更多数据点),但不会拒绝日期等属性。

删除很容易,重命名很难。

以下工具将“boo.txt”重命名为boo.txt

http://wren.adoxa.cjb.net

wren.exe boo~1.txt boo.txt

处理文件名。

注意:Wren 似乎有 16 位和 32 位版本 - 我使用 16 位版本执行重命名,并且被限制将其重命名为 8.3 文件名。您应该能够解决这个问题。

相关内容