【问题标题】:Batch script: remove Japanese character from filename in Windows批处理脚本:从 Windows 中的文件名中删除日文字符
【发布时间】:2013-10-16 22:27:05
【问题描述】:

我正在尝试让我的批次识别并删除非英文字符。基本上任何显示为“?”的字符在 cmd 窗口中。我需要使用 VBScript 吗?

我正在考虑蛮力编写一个脚本,该脚本提取文件名的每个字母并将其与大量可接受的字符进行比较,但必须有更好的方法。

【问题讨论】:

    标签: batch-file set character non-english


    【解决方案1】:

    试试这个:

    setlocal enabledelayedexpansion
    for /f "tokens=*" %%a (`dir /b`) do (
    :: Change the above line to `dir /s /b` to include subdirectories
    set var=%%~a 
    if "!var:?=!" neq "%%~a" (ren "%%~a" "!var:?=!")
    )
    

    这将删除当前目录中文件名中的所有?s(除非您包含/s)。请注意,如果您的文件名以 ; 开头,它将不起作用。但我猜这不会造成问题。

    【讨论】:

    • 莫娜。谢谢,但我已经尝试过用问号替换字符。但事实证明,问号只是一个不可打印字符的表示。它实际上不是“?”我正在尝试删除。文件名甚至不能有“?”反正在他们里面。我认为这是一个真正的障碍。我假设日文字符的 Ascii 代码高于 255。如果有办法检查每个字符的 ascii 代码,那么也许可以吗?
    • 如果这就是你所需要的,你可以做的是将所有文件输出到一个文本文件中,获取一个 python 文件以删除任何大于 255 的 ASCII 字符,然后用新名称中的名称重命名所有文件文件。
    猜你喜欢
    • 1970-01-01
    • 2012-04-28
    • 2018-07-02
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2014-09-28
    • 2015-12-27
    • 1970-01-01
    相关资源
    最近更新 更多