Board logo

标题: [文本处理] 求助查错:批处理调用vbs将字符串转换成gb2312的URL编码 [打印本页]

作者: gm2wie    时间: 2011-8-2 19:48     标题: 求助查错:批处理调用vbs将字符串转换成gb2312的URL编码

本帖最后由 pcl_test 于 2016-8-5 22:21 编辑

获取字符串的ANSI编码的批处理for语句错在哪里?
为何第6行中的echo显示结果为“Echo is off”呢,请高手赐教并指正,谢谢。
批处理代码:
  1. ::获取字符串的ANSI编码
  2. @echo off
  3. set str=我们
  4. cscript //nologo ansi.vbs %str%
  5. for /f "tokens=1,* delims=:" %%i in ('" cscript //nologo ansi.vbs %str%" ') do set acode =%%i
  6. Echo %acode%
  7. pause
复制代码
VBS代码:
  1. 'Date: 2010/6/18
  2. 'Author: Demon
  3. 'Website: http://demon.tw
  4. Function urlencode(str)
  5.         Dim i,c,s,length
  6.         length = Len(str)
  7.         For i = 1 To length
  8.                 s = Mid(str,i,1)
  9.                 c = Asc(Mid(str,i,1))
  10.                 If ( c >= Asc("A") And c <= Asc("Z") ) Or _
  11.                         ( c >= Asc("a") And c <= Asc("z") ) Or _
  12.                         ( c >= Asc("0") And c <= Asc("9") ) Or _
  13.                         ( c = Asc("-") Or c = Asc("_") Or c = Asc(".") ) Then
  14.                         urlencode = urlencode & s
  15.                 ElseIf c = Asc(" ") Then
  16.                         urlencode = urlencode & "+"
  17.                 Else
  18.                         urlencode = urlencode & "%" & Left(Hex(c),2)
  19.                         urlencode = urlencode & "%" & Right(Hex(c),2)                        
  20.                 End If
  21.         Next
  22. End Function
  23. set objArgs = wscript.Arguments
  24. WScript.Echo urlencode(objArgs(0))
复制代码

作者: CUer    时间: 2011-8-2 20:22

  1. echo,%acode%
复制代码

作者: tmplinshi    时间: 2011-8-2 20:23

::获取字符串的ANSI编码
@echo off
set str=我们
cscript //nologo ansi.vbs %str%
for /f "tokens=1,* delims=:" %%i in ('" cscript //nologo ansi.vbs %str%" ') do set acode =%%i
Echo %acode%
pause

改为 set acode=%%i
作者: CUer    时间: 2011-8-2 22:40

回复 3# tmplinshi


版主好眼力
作者: gm2wie    时间: 2011-8-3 16:31

谢谢指正,以后定当更加细致




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