Board logo

标题: [文本处理] [已解决]批处理有什么办法处理unicode字符? [打印本页]

作者: yue    时间: 2011-6-11 15:28     标题: [已解决]批处理有什么办法处理unicode字符?

批处理有办法处理unicode字符吗? 例如: "☀☁☂☃☭☄☢" 的这些字符
如果我要用批处理建这样的一个文件夹:
  1. md .\文件夹☁
复制代码
直接这样批处理是不会运行,有办法解决吗?
作者: 601997526    时间: 2011-6-11 15:35

为什么我这可以
xp sp3
作者: wc726842270    时间: 2011-6-11 15:44

你试试直接在CMD中执行
作者: yue    时间: 2011-6-11 15:46

直接在CMD中执行? 我还不如直接右键新建文件夹了; 我想要通过编程方式建立这样的字符
作者: Hello123World    时间: 2011-6-11 16:51

在提示符下可以,在批处理中不行,换个其它的文本编辑软件试试。
作者: yue    时间: 2011-6-11 17:01

换个其它的文本编辑软件也不行,难道这就是缺陷吗?
作者: applba    时间: 2011-6-11 17:26

写字板可以…………
word2010可以
作者: Hello123World    时间: 2011-6-11 17:32

我怎么测试写字板不行,win7.
作者: Batcher    时间: 2011-6-11 19:26

8# applba


楼主的意思应该是不管那些软件能不能正常显示特殊字符,关键是保存成bat文件之后,能不能正常运行。
作者: yue    时间: 2011-6-12 08:27

不知道可不可以用debug的方法获取替代这样的字符呢?
作者: applba    时间: 2011-6-12 08:35

  1. set ☀=123456789
  2. pause
  3. echo %☀%
  4. pause
复制代码
以上代码可以直接运行
保存为ansi格式的cmd也可以运行。
作者: yue    时间: 2011-6-12 09:27

12# applba 这你在保存时已经改变了这个unicode字符,被记事本换成了?号,其实你的变量是?了,我意思是要可以输出unicode字符的批处理程式,比如建一个含有unicode字符的文件或文件夹之类的效果!
作者: applba    时间: 2011-6-12 09:37

那你何不echo %??%试试,还有你直接运上面代码了吗。……
之所以要保存为ansi,是因为unicode的根本无法被运行……
你明知道用记事本打开无法正常显示,何不用写字板打开?
作者: yue    时间: 2011-6-12 09:47

14# applba 文不对题, 请你看明白我的意思, 谢谢
作者: Batcher    时间: 2011-6-12 10:00

14# applba


楼主不是要显示,而是要创建文件夹。
作者: applba    时间: 2011-6-12 11:15

15# yue

那是各个命令自己的问题。
set命令接受这样的参数
而md命令处理不了这样的参数。
作者: applba    时间: 2011-6-12 11:39

楼主试过wmic……?
作者: yue    时间: 2011-6-12 13:37

Unicode字符列表
注:除非有特别指明,否则以下符号皆属“半角”而非“全角”。
  1. 代码 显示 描述
  2. U+0020  空格
  3. U+0021 ! 叹号
  4. U+0022 " 双引号
  5. U+0023 # 井号
  6. U+0024 $ 价钱/货币符号
  7. U+0025 % 百分比符号
  8. U+0026 & 英文“and”的简写符号
  9. U+0027 ' 引号
  10. U+0028 ( 开 圆括号
  11. U+0029 ) 关 圆括号
  12. U+002A * 星号
  13. U+002B + 加号
  14. U+002C , 逗号
  15. U+002D - 连字号/减号
  16. U+002E . 句号
  17. U+002F / 由右上至左下的斜线
  18. U+0030 0 数字 0
  19. U+0031 1 数字 1
  20. U+0032 2 数字 2
  21. U+0033 3 数字 3
  22. U+0034 4 数字 4
  23. U+0035 5 数字 5
  24. U+0036 6 数字 6
  25. U+0037 7 数字 7
  26. U+0038 8 数字 8
  27. U+0039 9 数字 9
  28. U+003A : 冒号
  29. U+003B ; 分号
  30. U+003C < 小于符号
  31. U+003D = 等于号
  32. U+003E > 大于符号
  33. U+003F ? 问号
  34. U+0040 @ 英文“at”的简写符号
  35. U+0041 A 拉丁字母 A
  36. U+0042 B 拉丁字母 B
  37. U+0043 C 拉丁字母 C
  38. U+0044 D 拉丁字母 D
  39. U+0045 E 拉丁字母 E
  40. U+0046 F 拉丁字母 F
  41. U+0047 G 拉丁字母 G
  42. U+0048 H 拉丁字母 H
  43. U+0049 I 拉丁字母 I
  44. U+004A J 拉丁字母 J
  45. U+004B K 拉丁字母 K
  46. U+004C L 拉丁字母 L
  47. U+004D M 拉丁字母 M
  48. U+004E N 拉丁字母 N
  49. U+004F O 拉丁字母 O
  50. U+0050 P 拉丁字母 P
  51. U+0051 Q 拉丁字母 Q
  52. U+0052 R 拉丁字母 R
  53. U+0053 S 拉丁字母 S
  54. U+0054 T 拉丁字母 T
  55. U+0055 U 拉丁字母 U
  56. U+0056 V 拉丁字母 V
  57. U+0057 W 拉丁字母 W
  58. U+0058 X 拉丁字母 X
  59. U+0059 Y 拉丁字母 Y
  60. U+005A Z 拉丁字母 Z
  61. U+005B [ 开 方括号
  62. U+005C \ 由左上至右下的斜线
  63. U+005D ] 关 方括号
  64. U+005E ^ 抑扬(重音)符号
  65. U+005F _ 底线
  66. U+0060 ` 重音符
  67. U+0061 a 拉丁字母 a
  68. U+0062 b 拉丁字母 b
  69. U+0063 c 拉丁字母 c
  70. U+0064 d 拉丁字母 d
  71. U+0065 e 拉丁字母 e
  72. U+0066 f 拉丁字母 f
  73. U+0067 g 拉丁字母 g
  74. U+0068 h 拉丁字母 h
  75. U+0069 i 拉丁字母 i
  76. U+006A j 拉丁字母 j
  77. U+006B k 拉丁字母 k
  78. U+006C l 拉丁字母 l(L的小写)
  79. U+006D m 拉丁字母 m
  80. U+006E n 拉丁字母 n
  81. U+006F o 拉丁字母 o
  82. U+0070 p 拉丁字母 p
  83. U+0071 q 拉丁字母 q
  84. U+0072 r 拉丁字母 r
  85. U+0073 s 拉丁字母 s
  86. U+0074 t 拉丁字母 t
  87. U+0075 u 拉丁字母 u
  88. U+0076 v 拉丁字母 v
  89. U+0077 w 拉丁字母 w
  90. U+0078 x 拉丁字母 x
  91. U+0079 y 拉丁字母 y
  92. U+007A z 拉丁字母 z
  93. U+007B { 开 卷曲括号
  94. U+007C | 直棒
  95. U+007D } 关 卷曲括号
  96. U+007E ~ 波浪纹
  97. 拉丁字母-1
  98. 代码 显示 描述
  99. U+00A1 ? 倒转的叹号
  100. U+00A2 ? (货币单位)分钱、毫子
  101. U+00A3 ? (货币)英镑
  102. U+00A4 ¤ (货币)当货币未有符号时以此替代
  103. U+00A5 ? (货币)日圆
  104. U+00A6 ? 两条断开的直线
  105. U+00A7 § 文件分不同部分
  106. U+00A8 ¨ (语言)分音
  107. U+00A9 ? 版权符
  108. U+00AA ? (意大利文、葡萄牙文、西班牙文)阴性序数
  109. U+00AB ? 双重角形引号
  110. U+00AC ? 逻辑非
  111. U+00AE ?? 商标
  112. U+00AF ? 长音
  113. U+00B0 ° 角度
  114. U+00B1 ± 正负号
  115. U+00B2 ? 二次方
  116. U+00B3 ? 三次方
  117. U+00B4 ? 锐音符
  118. U+00B5 ? 百万分之一,10?6
  119. U+00B6 ? 文章分段
  120. U+00B7 · 间隔号
  121. U+00B8 ? 软音符
  122. U+00B9 ? 一次方
  123. U+00BA ? (意大利文、葡萄牙文、西班牙文)阳性序数
  124. U+00BB ? 指向右的双箭头
  125. U+00BC ? 四分之一
  126. U+00BD ? 二分之一
  127. U+00BE ? 四分之三
  128. U+00BF ? 倒转的问号
  129. U+00C1 ? 在拉丁字母 A 上加重音符
  130. U+00C2 ? 在拉丁字母 A 上加抑扬符“^”
  131. U+00C3 ? 在拉丁字母 A 上加“~”
  132. U+00C4 ? 在拉丁字母 A 上加分音符“..”
  133. U+00C5 ? 在拉丁字母 A 上加角度符“°”
  134. U+00C6 ? 拉丁字母 A、E 的混合
  135. U+00C7 ? 在拉丁字母 C 下加软音符
  136. U+00C8 ? 在拉丁字母 E 上加重音符
  137. U+00C9 ? 在拉丁字母 E 上加锐音符
  138. U+00CA ? 在拉丁字母 E 上加抑扬符
  139. U+00CB ? 在拉丁字母 E 上加分音符
  140. U+00CC ? 在拉丁字母 I 上加重音符
  141. U+00CD ? 在拉丁字母 I 上加锐音符
  142. U+00CE ? 在拉丁字母 I 上加抑扬符
  143. U+00CF ? 在拉丁字母 I 上加分音符
  144. U+00D0 ? 古拉丁字母 ?,现只有法罗文和冰岛文使用
  145. U+00D1 ? 在拉丁字母 N 上加波浪纹“~”
  146. U+00D2 ? 在拉丁字母 O 上加锐音符
  147. U+00D3 ? 在拉丁字母 O 上加重音符
  148. U+00D4 ? 在拉丁字母 O 上加抑扬符
  149. U+00D5 ? 在拉丁字母 O 上加波浪纹“~”
  150. U+00D6 ? 在拉丁字母 O 上加分音符
  151. U+00D7 × 乘号,亦可拖按“Alt”键,同时按“41425”五键
  152. U+00D8 ? 在拉丁字母 O 由右上至左下加对角斜线“/”
  153. U+00D9 ? 在拉丁字母 U 上加重音符
  154. U+00DA ? 在拉丁字母 U 上加锐音符
  155. U+00DB ? 在拉丁字母 U 上加抑扬符
  156. U+00DC ? 在拉丁字母 U 上加分音符
  157. U+00DD ? 在拉丁字母 Y 上加锐音符
  158. U+00DE ? 古拉丁字母 ?,现已被“Th”取替
  159. U+00DF ? 德文字母 ?
  160. U+00E0 à 在拉丁字母 a 上加重音符
  161. U+00E1 á 在拉丁字母 a 上加锐音符
  162. U+00E2 ? 在拉丁字母 a 上加抑扬符
  163. U+00E3 ? 在拉丁字母 a 上加波浪纹“~”
  164. U+00E4 ? 在拉丁字母 a 上加分音符
  165. U+00E5 ? 在拉丁字母 a 上加角度符“°”
  166. U+00E6 ? 拉丁字母 a、e 的混合
  167. U+00E7 ? 在拉丁字母 c 上加软音符
  168. U+00E8 è 在拉丁字母 e 上加锐音符
  169. U+00E9 é 在拉丁字母 e 上加重音符
  170. U+00EA ê 在拉丁字母 e 上加抑扬符
  171. U+00EB ? 在拉丁字母 e 上加分音符
  172. U+00EC ì 在拉丁字母 i 上加重音符
  173. U+00ED í 在拉丁字母 i 上加锐音符
  174. U+00EE ? 在拉丁字母 i 上加抑扬符
  175. U+00EF ? 在拉丁字母 i 上加分音符
  176. U+00F0 ? 古拉丁字母 ?的小写
  177. U+00F1 ? 在拉丁字母 n 上加波浪纹“~”
  178. U+00F2 ò 在拉丁字母 o 上加重音符
  179. U+00F3 ó 在拉丁字母 o 上加锐音符
  180. U+00F4 ? 在拉丁字母 o 上加抑扬符
  181. U+00F5 ? 在拉丁字母 o 上加波浪纹“~”
  182. U+00F6 ? 在拉丁字母 o 上加分音符
  183. U+00F7 ÷ 除号,亦可拖按“Alt”键,同时按“41426”五键
  184. U+00F8 ? 在拉丁字母 o 由右上至左下加对角斜线“/”
  185. U+00F9 ù 在拉丁字母 u 上加重音符
  186. U+00FA ú 在拉丁字母 u 上加锐音符
  187. U+00FB ? 在拉丁字母 u 上加抑扬符
  188. U+00FC ü 在拉丁字母 u 上加分音符
  189. U+00FD ? 在拉丁字母 u 上加锐音符
  190. U+00FE ? 古拉丁字母 ?,现已被“th”取替
  191. U+00FF ? 在拉丁字母 u 上加分音符
  192. 拉丁字母(扩展 A)
  193. 代码 显示 描述
  194. U+0100 ? 在拉丁字母 A 上加长音符
  195. U+0101 ā 在拉丁字母 a 上加长音符
  196. U+0102 ? 在拉丁字母 A 上加短音符
  197. U+0103 ? 在拉丁字母 a 上加短音符
  198. U+0104 ? 在拉丁字母 A 上加反尾形符
  199. U+0105 ? 在拉丁字母 a 上加反尾形符
  200. 拉丁字母(扩展 C)
  201. 代码 显示 描述
  202. U+2C60 ? 在拉丁字母“L”中间加两条横线“=”
  203. U+2C61 ? 在拉丁字母“l”(L 的小写)中间加一条横线“-”
  204. U+2C62 ? 在拉丁字母“L”(大写)中间加一条波浪线“~”
  205. U+2C63 ? 在拉丁字母“P”中间加一条横线“-”
  206. U+2C64 ? 在拉丁字母“R”下加一条尾巴
  207. U+2C65 ? 在拉丁字母“a”上加一条对角斜线“/”
  208. U+2C66 ? 在拉丁字母“t”上加一条对角斜线“/”
  209. U+2C67 ? 在拉丁字母“H”下加一条尾巴
  210. U+2C68 ? 在拉丁字母“h”下加一条尾巴
  211. U+2C69 ? 在拉丁字母“K”下加一条尾巴
  212. U+2C6A ? 在拉丁字母“k”下加一条尾巴
  213. U+2C6B ? 在拉丁字母“Z”下加一条尾巴
  214. U+2C6C ? 在拉丁字母“z”下加一条尾巴
  215. U+2C74 ? 在拉丁字母“v”的起笔加一个弯勾
  216. U+2C75 ? 拉丁字母“H”的左半部
  217. U+2C76 ? 拉丁字母“h”的左半部
  218. U+2C77 ? 希腊字母“φ”的上半部
  219. 彝文字母
  220. 拉丁字母(扩展 D)
  221. 代码 显示 描述
  222. U+A720 ? 强调音调音昂的改造字母
  223. U+A721 ? 强调音调低沉的改造字母
  224. 特殊
  225. 代码 显示 描述
  226. U+FFFC   取代无法显示字符的“OBJ”
  227. U+FFFD ? 无法显示的字符以它取代
  228. Unicode 编码表
  229. Unicode 编码表
  230. BMP SMP SIP SSP
  231. 0000—0FFF 8000—8FFF 10000—10FFF 20000—20FFF 28000—28FFF E0000—E0FFF
  232. 1000—1FFF 9000—9FFF   21000—21FFF 29000—29FFF
  233. 2000—2FFF A000—AFFF 12000—12FFF 22000—22FFF 2A000—2AFFF
  234. 3000—3FFF B000—BFFF   23000—23FFF   
  235. 4000—4FFF C000—CFFF   24000—24FFF 2F000—2FFFF
  236. 5000—5FFF D000—DFFF 1D000—1DFFF 25000—25FFF   
  237. 6000—6FFF E000—EFFF   26000—26FFF   
  238. 7000—7FFF F000—FFFF 1F000—1FFFF 27000—27FFF
复制代码
不知批处理如何利用其编号,还没有头绪~~
作者: wc726842270    时间: 2011-6-12 14:10

无聊来一贴,当然不实用了(1.txt内包含“文件夹”三个字)
  1. for /f %i in ('type 1.txt') do md %i☁
复制代码

作者: yue    时间: 2011-6-12 14:29

20# wc726842270   保存为BAT文件是无法运行的
作者: applba    时间: 2011-6-12 14:36

控制台中直接  md d:\123☁   
然后用资源管理器可以看到成功了
作者: qzwqzw    时间: 2011-6-12 16:38

问题似乎无解
批处理必须以ANSI编码保存
否则cmd无法正常处理
而中文locale下的ANSI对应的GBK字符集
是没有楼主所提到的那些字符的
作者: yue    时间: 2011-6-12 17:11

23# qzwqzw 非常感谢!
作者: CrLf    时间: 2011-6-12 17:55

确实无法直接保存,但是可以这样:
  1. copy /b %0+a.txt %0
  2. chcp 437
  3. call :set
  4. echo %Unicode%
  5. pause
  6. :set
  7. set Unicode=^
复制代码

作者: Batcher    时间: 2011-6-13 01:17

22# applba


楼主在发帖求助之前就知道这一点了,人家的问题是怎样在bat文件里实现。
作者: Demon    时间: 2011-6-13 16:01

http://bbs.bathome.net/thread-12824-1-1.html




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2