gpt4 book ai didi

windows - 处理 Windows 命令中的扩展字符?

转载 作者:可可西里 更新时间:2023-11-01 13:21:30 25 4
gpt4 key购买 nike

我正在调试 Windows 批处理命令文件。在路径或文件名中使用扩展 (> 0x7f) 字符时失败。该问题似乎与将参数传递给从另一个调用的命令文件有关。

例如,此命令按预期工作:

xcopy "Pezuñero\1 - 001.wav" \temp

这不是:

call another.cmd "Pezuñero" 

“another.cmd”的内容:

xcopy "%~1\1 - 001.wav"    \temp

%~1 语法扩展参数并删除引号。这是必要的,因为在真正的命令文件中,调用或被调用命令文件中的路径可能有空格。

第二个示例的结果(从 CMD 窗口复制)是这样的:

C:\>call another.cmd "Pezu±ero"    

C:\>xcopy "Pezu±ero\1 - 001.wav" \temp
File not found - 1 - 001.wav
0 File(s) copied

请注意,“ñ”(0xF1) 字符已更改为“±”(0xB1)。

谁能解释发生了什么,以及如何解决这个问题?

最佳答案

脚本必须使用 cmd.exe 使用的相同编码编写。

在提示符处键入 chcp 并查看得到的结果。然后使用支持该编码的编辑器打开该文件。对我来说,chcp 输出代码页 850,所以我在 JEdit 中编辑我的脚本选择 IBM850 作为文件编码。我在 PSPad 中编辑文件时得到相同的结果将格式设置为OEM

P.S.: 我在我的机器上测试了你的步骤,我在 notepad.exe 中写入的 ñ 字符(使用默认的 ANSI 编码)也被转换为 < strong>± 从命令提示符读取时,看起来您的机器使用类似的 ANSI 和 OEM 编码。为确保尝试将 ñ 替换为 ¤(使用 notepad.exe)。这使得脚本在我从命令提示符运行时可以正常工作(因为 ANSI 的 ¤ 的字节值与 OEM 的 ñ 相同)。

关于windows - 处理 Windows 命令中的扩展字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/735617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com