Sim*_*mon 3 ansi batch-file extended-ascii
我有一堆动态创建的*.BAT文件.这些BAT文件用于在服务器中创建文件夹.每个BAT文件中只有一行,例如:MKDIR\NetworkShare\abc\123
这个"abc\123"字符串来自数据库.
它可以运行一段时间按需创建数千个子文件夹,直到今天它停止创建一个特殊的子文件夹,它在字符串中有一个"关闭单引号"(如果从dos提示符输入,则为Alt+ 0146).
我做了一些研究,发现这个"关闭单引号"是一个扩展的ASCII字符.它无法在ANSI BAT文件中正确保存(最终为其他内容).我尝试了UNICODE和UTF-8 BAT文件,但它不起作用.
唯一近乎接近的解决方案是我尝试使用二进制编辑器来确保代码146,但代码146给了我Æ(ALT-146)而不是"单引号"(Alt+ 0146).
我知道我可以在DOS提示符下手动输入特殊字符(使用键盘Alt+ ).但是有没有办法在BAT文件中正确保存这个"关闭单引号"(Alt+ 0146)所以我可以动态执行它们?
主机系统是Windows Server 2003美国英语.
谢谢你这个CHCP 65001技巧.它导致适当的解决方案:
我采取了以下步骤来解决问题:
+++++++++++++++++++
准备BAT文本文件(手动或动态)
+++++++++++++++++++
(1)将第一行留空(这是必要的,因为UTF-8文本文件的第一行中有隐藏的字符)
(2)将CHCP 65001作为第二行
(3)主线在这里:MKDIR \networkshare\abc(右单引号 - >这是特殊的扩展ASCII字符)\ 123
(4)确保BAT文件保存为UTF-8
+++++++++++++++++++
现在是CMD.EXE技巧
+++++++++++++++++++
(1)启动cmd.exe
(2)打开cmd.exe黑屏属性
(3)确保黑屏字体为"真实类型"即"TT"之类.默认情况下,它是光栅字体,无法正确处理特殊的ascii代码.(这是关键步骤)
(4)现在我可以运行我的BAT来正确处理那些扩展的ASCII字符.
归档时间: |
|
查看次数: |
15211 次 |
最近记录: |