在Windows中从文件名中批量删除特殊字符

梅尔

我是批处理脚本的新手。

有针对Linux和macos的解决方案,但对于Windows我需要它。

我有以下内容,它们仅适用于特殊字符!@#$%^&*〜等。基本上,您可以在键盘上看到的那些字符。但是我需要删除特殊字符,例如Â和°。以下脚本不适用于这两个特定字符。,我可以通过cmd运行的脚本。此功能,但与winows7 cmd不兼容。

@echo off &setlocal
cd /d c:\users\data
for /f "delims=" %%a in ('dir /b /a-d *#*.txt') do (
    set "fname=%%~a"
    setlocal enabledelayedexpansion
    set "nname=!fname:#=!"
    ren "!fname!" "!nname!"
    endlocal
)

以下内容只能删除文件名中的空格

@echo off
setlocal disableDelayedExpansion
if /i "%~1"=="/R" (
  set "forOption=%~1 %2"
  set "inPath="
) else (
  set "forOption="
  if "%~1" neq "" (set "inPath=%~1\") else set "inPath="
)
for %forOption% %%F in ("%inPath%* *") do (
  if /i "%~f0" neq "%%~fF" (
    set "folder=%%~dpF"
    set "file=%%~nxF"
    setlocal enableDelayedExpansion
    echo ren "!folder!!file!" "!file: =!"
    ren "!folder!!file!" "!file: =!"
    endlocal
  )
)
大卫·尼德汉姆

如果您必须将代码页437用于您的脚本这一事实,那么您的第一个脚本对我有用。

将以下脚本粘贴到记事本中。使用ANSI编码另存为test.bat。

@echo off &setlocal
cd /d c:\users\data
for /f "delims=" %%a in ('dir /b /a-d *ø*.txt') do (
    set "fname=%%~a"
    setlocal enabledelayedexpansion
    set "nname=!fname:ø=!"
    ren "!fname!" "!nname!"
    endlocal
)

上面的脚本将重命名degree°.txtdegree.txt

使用ø是因为它是Unicode U+00F8学位符号0xF8在代码页437中。

Â没有出现在代码页437中,所以我不知道并行解决方案。可能需要按照此答案中的指示更改代码页才能正确执行。这是对包含更改代码页的批处理文件的尝试。

echo Ignore the error displayed below
@echo off &setlocal
chcp 65001>nul
cd /d c:\users\data
for /f "delims=" %%a in ('dir /b /a-d *Â*.txt') do (
    set "fname=%%~a"
    setlocal enabledelayedexpansion
    set "nname=!fname:Â=!"
    ren "!fname!" "!nname!"
    endlocal
)

将以上内容粘贴到记事本文件中,并以UTF-8编码保存。必须包含脚本的第一行,因为批处理文件在最初处理UTF-8文件时会出现错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式从Windows的文件名中删除特殊字符

来自分类Dev

批量删除文件名中的括号

来自分类Dev

从文件名中删除特殊字符

来自分类Dev

文件名Java中的特殊字符

来自分类Dev

如何从PHP表单文件上传的文件名中删除特殊字符,例如撇号/引号

来自分类Dev

在Windows批处理脚本中特殊字符的倍数后截断文件名?

来自分类Dev

从文件名中删除特殊字符

来自分类Dev

无法删除文件名中包含特殊字符的文件

来自分类Dev

更改bash中具有特殊字符的文件名

来自分类Dev

文件名中的批量替换字符

来自分类Dev

Django从文件名中删除“ @”和其他特殊字符

来自分类Dev

在Linux中批量删除文件名中的特殊字符

来自分类Dev

删除文件名中带有特殊字符的目录

来自分类Dev

文件名中的特殊字符(\#033OA)

来自分类Dev

无法删除/移动文件名中带有特殊字符的文件

来自分类Dev

在Windows批处理脚本中特殊字符的倍数后截断文件名?

来自分类Dev

无法删除文件名中包含特殊字符的文件

来自分类Dev

如何在Windows中的文件名中显示特殊字符

来自分类Dev

在Perl中以特殊字符打开文件名中的文件

来自分类Dev

Powershell从文件名中删除特殊字符

来自分类Dev

bash-处理文件名中的特殊字符

来自分类Dev

删除文件名中的特定字符

来自分类Dev

终端命令:处理文件名中的特殊字符

来自分类Dev

在 Windows 中的特定字符串之后从文件名中删除字符的最佳方法

来自分类Dev

从powershell中的文件名中删除特殊字符

来自分类Dev

如何使用命令从文件名中删除特殊字符?

来自分类Dev

批量删除文件名中的括号和方括号

来自分类Dev

从文件名中删除某些特殊字符

来自分类Dev

尝试从文件名中批量删除不可见的特殊字符

Related 相关文章

  1. 1

    正则表达式从Windows的文件名中删除特殊字符

  2. 2

    批量删除文件名中的括号

  3. 3

    从文件名中删除特殊字符

  4. 4

    文件名Java中的特殊字符

  5. 5

    如何从PHP表单文件上传的文件名中删除特殊字符,例如撇号/引号

  6. 6

    在Windows批处理脚本中特殊字符的倍数后截断文件名?

  7. 7

    从文件名中删除特殊字符

  8. 8

    无法删除文件名中包含特殊字符的文件

  9. 9

    更改bash中具有特殊字符的文件名

  10. 10

    文件名中的批量替换字符

  11. 11

    Django从文件名中删除“ @”和其他特殊字符

  12. 12

    在Linux中批量删除文件名中的特殊字符

  13. 13

    删除文件名中带有特殊字符的目录

  14. 14

    文件名中的特殊字符(\#033OA)

  15. 15

    无法删除/移动文件名中带有特殊字符的文件

  16. 16

    在Windows批处理脚本中特殊字符的倍数后截断文件名?

  17. 17

    无法删除文件名中包含特殊字符的文件

  18. 18

    如何在Windows中的文件名中显示特殊字符

  19. 19

    在Perl中以特殊字符打开文件名中的文件

  20. 20

    Powershell从文件名中删除特殊字符

  21. 21

    bash-处理文件名中的特殊字符

  22. 22

    删除文件名中的特定字符

  23. 23

    终端命令:处理文件名中的特殊字符

  24. 24

    在 Windows 中的特定字符串之后从文件名中删除字符的最佳方法

  25. 25

    从powershell中的文件名中删除特殊字符

  26. 26

    如何使用命令从文件名中删除特殊字符?

  27. 27

    批量删除文件名中的括号和方括号

  28. 28

    从文件名中删除某些特殊字符

  29. 29

    尝试从文件名中批量删除不可见的特殊字符

热门标签

归档