[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] [已解决]bat文件,相同的内容,echo后面的内容换成中文就报错

本帖最后由 in126 于 2021-8-23 22:17 编辑

因为工作需要,我最近在写一个切换静态IP和自动获取IP的脚本,在网上四处寻找到了英文版本,为了方便同事使用,就把echo后面的提示都改写成了中文,如下:
  1. @echo off  
  2. ::让cmd正常显示中文
  3. chcp 65001
  4. ::bat文件自动获取管理员权限
  5. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0"
  6. ::让用户选择静态IP或是自动获取IP
  7. echo Choose:
  8. echo [A] StaticIP
  9. echo [B] Automatic IP
  10. echo.
  11. :choice
  12. SET /P C=Choose between[A,B]:
  13. if "%C%"=="A" goto A
  14. if "%C%"=="B" goto B
  15. goto choice
复制代码
后面的内容暂且不赘述,因为可以运行,我把上面的代码改成了这样:
  1. @echo off  
  2. ::让cmd正常显示中文
  3. chcp 65001
  4. ::bat文件自动获取管理员权限
  5. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0"
  6. ::让用户选择静态IP或是自动获取IP
  7. echo 请选择:
  8. echo [A]内网配置
  9. echo [B]外网配置
  10. echo.
  11. :choice
  12. SET /P C=[A,B]?
  13. if "%C%"=="A" goto A
  14. if "%C%"=="B" goto B
  15. goto choice
复制代码
然后cmd就会报这么一堆错误,跳过了大部分代码:
  1. 'ation").ShellExecute("cmd.exe","'不是内部或外部命令,也不是可运行的程序或批处理文件。
  2. '配置'不是内部或外部命令,也不是可运行的程序或批处理文件。
  3. ……
复制代码
我想把截图放上来,但是不知道为什么,总是提示我“附件文件无法保存”,所以只能手打几段错误信息。
事实上,我在英文的代码里也不能用中文注释,否则后面紧跟的代码根本运行不了。
虽然我可以用英文的脚本,但是实在不明白,为什么我不能用中文呢?恳请大家帮忙解答,谢谢!

文件编码格式改成ansi,然后代码里面改成chcp 936试试呢

TOP

回复 2# zz100001


    也不行,报错信息有细微的差异:
  1. 'ation").ShellExecute("cmd.exe","'不是内部或外部命令,也不是可运行的程序或批处理文件。
复制代码
变成了:
  1. 'ion").ShellExecute("cmd.exe","'不是内部或外部命令,也不是可运行的程序或批处理文件。
复制代码
剩下基本一样,我不知道这有没有关系

TOP

你不会打换行了吧,按道理不会中间断开的

TOP

回复 4# zz100001


    没有哇,代码就像上面写的那样,只是echo后面显示的内容用了中文,换行的话英文版的应该运行不了吧
我倒是想把代码整个都传上来,但是传不了附件

TOP

回复 5# in126


    请把附件上传到阿里云盘或百度网盘
1

评分人数

    • in126: 感谢指导技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# in126


    你可以把图片上传到 http://cmd1152.ys168.com 的 BATHOMEPNG ,然后复制图片地址,再在发帖时使用网络图片,像这样:
1

评分人数

    • in126: 感谢指导技术 + 1
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

本帖最后由 cmd1152 于 2021-8-23 12:07 编辑

回复 5# in126


    复制cmd内容方法:
右键=>选定=>框住要复制的内容=>按Enter
1

评分人数

    • in126: 感谢指导技术 + 1
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

回复 3# in126


    删除chcp命令
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

回复 6# Batcher


    你好!我上传到百度网盘了,地址是
https://pan.baidu.com/s/1y9Rz31vhrpaNjMJAYR-tDg
密码是14ex

TOP

回复 10# in126


    我看了 BATHOMEPNG\cmd错误信息-删除chcp.jpg 和 BATHOMEPNG\cmd错误信息.jpg
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

回复 10# in126


    看起来是Cmd的默认值问题
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

回复 10# in126


    你右键cmd的左上角的小图标,点属性,我看看
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

回复 9# cmd1152


    你好!我按照你说的方法把图片上传上来了,看看这个能不能用:



这个是删除了chcp后的错误信息:



我也上传了原本的脚本文件到百度云盘,地址是https://pan.baidu.com/s/186ct-tAieo3_3M0yt3DT9g
密码是g775

TOP

回复 13# cmd1152


    你好!我把属性截图的链接贴上来吧:
  1. [img]http://ys-e.ys168.com/618757350/217166372/t534L74467HM73mdoj65d5/cmd%E5%B1%9E%E6%80%A7.jpg[/img]
复制代码

TOP

返回列表