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