【问题标题】:How to avoid BAT FOR failure on non-ascii characters?如何避免非 ASCII 字符的 BAT FOR 失败?
【发布时间】:2013-06-04 16:36:31
【问题描述】:

这个BAT文件怎么行:

FOR %%F in (Q:\Playlists*.m3u) do sed -e"s~^\~R:&~" > "R:%%~pnxF"

被重新编码以避免在包含非 ascii 字符的文件名上观察到的失败,例如一个?

也许使用短名称。

【问题讨论】:

  • "可能会移动到超级用户站点" 为什么会这样?这是关于编程的。

标签: windows-7 cmd windows-xp


【解决方案1】:
FOR %%F in (Q:\Playlists*.m3u) do (
 sed -e"s~^\~R:&~" > "R:\junkname"
 ren "R:\junkname" "%%~nxF"
)

可能适合。我无法测试它,因为我没有容易获得的非 ASCII 文件名字符。

(注意~p应该被解析为\

【讨论】:

    【解决方案2】:

    找到解决方案 - ~s :

    FOR %%F in (Q:\Playlists*.m3u) 执行 sed -e"s~^\~R:&~" -e"s~....$~.wma~" "%% ~sF" > "R:%%~pnxF"

    我明白了

    DIR /X ... "如果不存在短名称,则显示空白 取而代之。”

    我希望 ~s 不会受到影响。

    这表明:

    有人知道吗?

    【讨论】:

    • ℅℅~sF函数有bug,看here
    猜你喜欢
    • 1970-01-01
    • 2018-04-08
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2016-06-13
    • 2018-12-08
    • 2011-04-19
    相关资源
    最近更新 更多