删除 Windows 文件名中的前导空格

Val*_*ros 3 batch-file

我有一个 Windows 文件夹,其中包含许多子文件夹和文件。我注意到有数百个文件的名称以空格开头,因此不会复制到云存储库(OneDrive)。是否有一个 Windows 命令或批处理文件可以运行来搜索文件夹及其子文件夹中以空格开头的任何文件名,并删除该空格?

dou*_*eep 5

执行此操作的批处理文件方法如下:

@echo off
for /R %%A IN (" *") do (
    for /F "tokens=*" %%B IN ("%%~nxA") do (
        ren "%%A" "%%B"
    )
)
Run Code Online (Sandbox Code Playgroud)
  • 我们使用选项循环遍历所有子文件夹/R
  • 我们想要查找所有以空格开头的文件,因此我们将其指定在括号 ( (" *")) 中。
    • 对于找到的每个文件,我们循环遍历其名称,指定tokens=*这意味着删除前面的任何空格。
    • 因此,之后我们得到:
      %%A =开头有空格的文件的完整路径
      %%B =只是不带空格的文件名
      • 所以,我们用ren命令重命名它们。
    • (closing parenthesis)
  • (closing parenthesis)

这也可以从命令行在一行中运行:

for /R %A IN (" *") do @for /F "tokens=*" %B IN ("%~nxA") do @ren "%A" "%B"
Run Code Online (Sandbox Code Playgroud)