bat脚本中文
㈠ 如何解决Bat脚本中包含中文,运行乱码
1、在notepad工具中去编辑一些文本文件,如下如:
㈡ 脚本乱码怎么解决方法
bat脚本在批处理的时候被经常用到,但是有时候不正确的使用,会导致在bat脚本中的中文,运行起来的时候显示为乱码,这个让人很不爽,下面分享下自己解决这个问题的方法。
工具/原料
Bat脚本
电脑
习惯性的,我会在notepad工具中去编辑我的一些文本文件,如下如:
9
上图,可以看到中文都可以显示正常了。
写bat的时候 ,大家最好用文本去编辑,然后保存的时候,记得设置好他的编码方式
方法/步骤
注意事项
㈢ bat文件处理完成汉字乱码
脚本文件执行时出现中文乱码,一般是脚本保存时的编码没有设置对造成的。这种情况特别在win10系统上更容易出现。因为win10默认保存的文本编码为utf-8,而bat脚本执行时使用的是ansi编码,所以就出现了中文乱码。因此脚本保存时的编码务必要选择为ANSI哦!
㈣ Windows cmd(bat) 脚本简介
命令提示符是在 操作系统 中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。在 windows 环境下,命令行程序为 cmd.exe,微软 Windows 系统基于 Windows 上的命令解释程序,类似于微软的 DOS 操作系统 。
四种文件类别
命令不区分大小写
在 Windows 系统中,所有的文件夹或者文件名、环境变量、命令都是 不区分大小写 。据说但是是为了兼容 DOS,才没有区分大小写,后续就一直不区分了。
查看 windows 版本
winver
打开注册表
regedit
打开计算器
calc
打开绘图
mspaint
打开记事本
notepad
打开写字板
wordpad
打开控制面板
control
打开远程桌面 (Microsoft terminal services client)
mstsc
打开或关闭 Windows 功能
optionalfeatures
服务管理
services.msc
系统配置
msconfig.exe
防火墙
firewall.cpl
卸载或更改程序
appwiz.cpl
打开计算机管理
compmgmt.msc
打开电源选项
powercfg.cpl
打开 internet 选项
inetcpl.cpl
系统属性
sysdm.cpl
显示设置
desk.cpl
证书管理
certmgr.msc
添加硬件
hdwwiz.exe
关机
shutdown
dir
cd
tree
显示目录结构
tree d: #显示D盘的文件目录结构
日期和时间
文件/文件夹的重命名
复制文件
删除文件是不经过回收站
删除空文件夹
rmdir(rd):删除非空文件夹且需要进行确认
删除非空文件夹且不需要进行确认
重命名文件或者文件夹。(尽管引号不是强制性的,但如果当前名称或新名称中都有空格)
清屏
cls
显示文件内容
type
网址/域名 :检查当前网址是否连通 (注:会返回当前网址对应的IP地址和网络状态)
ping
方法一:使用 ↑↓ 箭头上下翻看执行过的命令,此方式适宜执行命令较少的情况;
方法二:使用快捷键:
F7: 快捷键查看所有执行过的命令
F3:调出上一条执行过的命令,调出后直接回车即可执行;
F8:搜索命令历史记录,和↑向上箭头类似。
F9:按编号选择命令,来调出执行过的命令:
方法三:doskey /HISTORY 显示保存在内存中的所有命令
可搭配 more、findstr 命令进行使用:
doskey /HISTORY | more
doskey /HISTORY | findstr dir
doskey /HISTORY > d:123.txt 重定向到文件
后缀一般存储为 bat, cmd 格式的文件。
创建文件:建议右键-新建文本文档。建议选择 gbk 中文编码,换行选择 。示例中我将文件存储为 hello.bat。
使用方法:双击使用或在命令提示符中键入文件名。
设置 cmd 窗口的标题
输出到屏幕
将参数1,参数2 输入到命令行
hello.bat aaa bbb
说明:
%0 批处理文件本身
%1 第一个参数
...
%9 第九个参数
pause 就是暂停命令
pause > null 的作用是同样的,区别是不显示“请按任意键继续. . .”这些字,nul 相当于空设备。
定义变量,注意等号左右不能加空格。
在批处理中 > 和 < 为重定向符号,这就意味着我们不能用 > 来表示大于,< 表示小于,也就意味着不能用 >=、<=、<> 来表示大于等于、小于等于、不等于,还好,在批处理中用了其他的操作符代替它们,这在"if /?"中有说明:
引用内容 引用内容
1. &
顺序执行多条命令,而不管命令是否执行成功
2. &&
顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
如果找到了"ok"字样,就显示"成功",找不到就不显示
3. ||
顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
如果找不到"ok"字样,就显示"不成功",找到了就不显示
5. 输出重定向命令
> 清除文件中原有的内容后再写入
>> 追加内容到文件末尾,而不会清除原有的内容
6. 管道操作符 |
clip 将内容复制到剪切板
dir 组合 clip 的用法示例
start 可以打开文件夹,文件,网址等
if 关键字和语句
1、if [NOT]"参数" == "字符串"
2、if [NOT] exist 文件名 待执行的命令
3、if [NOT] errorlevel 数字 待执行的命令
如果返回码大于或者等于(或者小于,使用NOT)指定的数字,则条件成立,运行命令,否则运行下一句。DOS 程序运行时都会返回一个数字给 DOS,称为错误码 errorlevel 或称返回码。默认值为 0,一般命令执行出错会设 errorlevel 为1。数字取值范围 0~255。判断时值的排列顺序应该由大到小,否则会出现非期望的结果。
示例1:if 搭配 exist 进行使用,用于判断某文件是否存在
原来的环境变量后加上英文状态下的分号和路径
set PATH=%PATH%;C:UserszhangsanDocumentswinrar-x64-580
setx PATH "%PATH%;D:Program Files"
该语句表示添加到用户环境变量, 设置后对当前窗口不生效, 后续窗口都生效了.
(建议执行一次, 防止多试重复添加, 该威力巨大.
目前不知道怎么删除单项环境变量, 只能采取重新赋值的方式)
键入 "SETX /?" 了解用法信息。
切记:每个指令之间必须以空格隔开,in 与 ( 之间有空格,do 与 ( 间也有空格,否则命令会无法成功执行
[ ]:表示此项指令为可选
[参数]:参数取值一共有四种: /d, /r, /l, /f,加上无参数,所以一共五种场景
无参:遍历当前路径的文件夹下的文件,但也可在(匹配符)中指定路径
批处理脚本遍历指定文件夹下的文件_RuncX的技术博客_51CTO博客
https://blog.51cto.com/runcx/2465152
C:Usersferder>echo %date%
2022/07/02 周六
C:Usersferder>echo %time%
20:19:37.09
因此
提取年 %date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2014
提取月 %date:~5,2%
提取日 %date:~8,2%
同理提取时间的时分秒为 %time:~0,2%%time:~3,2%%time:~6,2%
实战操作:
md %date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
则是再当前目录下创建一个空的文件夹。
DOS 批处理中的字符串处理详解(字符串截取)
https://blog.csdn.net/xiaoding133/article/details/39253083
㈤ 如何解决Bat脚本中包含中文,运行乱码
bat文件右键用“ 编辑” 打开,
另存为时,UTF-8保存为ANSI 格式。即可解决运行是乱码问题,
㈥ CMD BAT当中创建文件夹时有中文就会出错
按道理,set中用中文是可以正常创建出文件夹的。
我估计的可能性,是您把bat脚本文件的编码设置错了。如果不是ansi编码的脚本,运行后中文字就会出现乱码,然后容易导致脚本执行报错。
所以建议您保存bat脚本时,文件编码务必要保存为ANSI的。
㈦ 如何解决Bat脚本中包含中文,运行乱码
1、在notepad工具中去编辑一些文本文件,如下如:
㈧ 批处理重命名中文汉字
看了您自己原本的,以及另一位朋友的代码,我提出以下疑问。
- bat脚本文件保存编码是否为ANSI?注意,是bat脚本文件,不是被处理的文件。
- bat脚本中的换行符是否为Windows的CR+LF?如果换行符变成了Linux的LF,那么就会导致脚本运行出问题。
㈨ bat文件命令大全
有关某个命令的详细信息,请键入 HELP 命令名
ASSOC 显示或修改文件扩展名关联。
AT 计划在计算机上运行的命令和程序。
ATTRIB 显示或更改文件属性。
BREAK 设置或清除扩展式 CTRL+C 检查。
CACLS 显示或修改文件的访问控制列表(ACLs)。
CALL 从另一个批处理程序调用这一个。
CD 显示当前目录的名称或将其更改。
CHCP 显示或设置活动代码页数。
CHDIR 显示当前目录的名称或将其更改。
CHKDSK 检查磁盘并显示状态报告。
CHKNTFS 显示或修改启动时间磁盘检查。
CLS 清除屏幕。
CMD 打开另一个 Windows 命令解释程序窗口。
COLOR 设置默认控制台前景和背景颜色。
COMP 比较两个或两套文件的内容。
COMPACT 显示或更改 NTFS 分区上文件的压缩。
CONVERT 将 FAT 卷转换成 NTFS。您不能转换
当前驱动器。
COPY 将至少一个文件复制到另一个位置。
DATE 显示或设置日期。
DEL 删除至少一个文件。
DIR 显示一个目录中的文件和子目录。
DISKCOMP 比较两个软盘的内容。
DISKCOPY 将一个软盘的内容复制到另一个软盘。
DOSKEY 编辑命令行、调用 Windows 命令并创建宏。
ECHO 显示消息,或将命令回显打开或关上。
ENDLOCAL 结束批文件中环境更改的本地化。
ERASE 删除至少一个文件。
EXIT 退出 CMD.EXE 程序(命令解释程序)。
FC 比较两个或两套文件,并显示
不同处。
FIND 在文件中搜索文字字符串。
FINDSTR 在文件中搜索字符串。
FOR 为一套文件中的每个文件运行一个指定的命令。
FORMAT 格式化磁盘,以便跟 Windows 使用。
FTYPE 显示或修改用于文件扩展名关联的文件类型。
GOTO 将 Windows 命令解释程序指向批处理程序
中某个标明的行。
GRAFTABL 启用 Windows 来以图像模式显示
扩展字符集。
HELP 提供 Windows 命令的帮助信息。
IF 执行批处理程序中的条件性处理。
LABEL 创建、更改或删除磁盘的卷标。
MD 创建目录。
MKDIR 创建目录。
MODE 配置系统设备。
MORE 一次显示一个结果屏幕。
MOVE 将文件从一个目录移到另一个目录。
PATH 显示或设置可执行文件的搜索路径。
PAUSE 暂停批文件的处理并显示消息。
POPD 还原 PUSHD 保存的当前目录的上一个值。
PRINT 打印文本文件。
PROMPT 更改 Windows 命令提示符。
PUSHD 保存当前目录,然后对其进行更改。
RD 删除目录。
RECOVER 从有问题的磁盘恢复可读信息。
REM 记录批文件或 CONFIG.SYS 中的注释。
REN 重命名文件。
RENAME 重命名文件。
REPLACE 替换文件。
RMDIR 删除目录。
SET 显示、设置或删除 Windows 环境变量。
SETLOCAL 开始批文件中环境更改的本地化。
SHIFT 更换批文件中可替换参数的位置。
SORT 对输入进行分类。
START 启动另一个窗口来运行指定的程序或命令。
SUBST 将路径跟一个驱动器号关联。
TIME 显示或设置系统时间。
TITLE 设置 CMD.EXE 会话的窗口标题。
TREE 以图形模式显示驱动器或路径的目录结构。
TYPE 显示文本文件的内容。
VER 显示 Windows 版本。
VERIFY 告诉 Windows 是否验证文件是否已正确
写入磁盘。
VOL 显示磁盘卷标和序列号。
XCOPY 复制文件和目录树。
appwiz.cpl------------添加删除程序
control userpasswords2--------用户帐户设置
cleanmgr-------垃圾整理
CMD--------------命令提示符可以当作是 Windows 的一个附件,Ping,Convert 这些不能在图形环境下 使用的功能要借助它来完成。
cmd------jview察看Java虚拟机版本。
command.com------调用的则是系统内置的 NTVDM,一个 DOS虚拟机。它完全是一个类似 Virtual PC 的 虚拟环境,和系统本身联系不大。当我们在命令提示符下运行 DOS 程序时,实际上也 是自动转移到 NTVDM虚拟机下,和 CMD 本身没什么关系。
calc-----------启动计算器
chkdsk.exe-----Chkdsk磁盘检查
compmgmt.msc---计算机管理
conf-----------启动 netmeeting
control userpasswords2-----User Account 权限设置
devmgmt.msc--- 设备管理器
diskmgmt.msc---磁盘管理实用程序
dfrg.msc-------磁盘碎片整理程序
drwtsn32------ 系统医生
dvdplay--------启动Media Player
dxdiag-----------DirectX Diagnostic Tool
gpedit.msc-------组策略编辑器
gpupdate /target:computer /force 强制刷新组策略
eventvwr.exe-----事件查看器
explorer-------打开资源管理器
logoff---------注销命令
lusrmgr.msc----本机用户和组
msinfo32---------系统信息
msconfig---------系统配置实用程序
net start (servicename)----启动该服务
net stop (servicename)-----停止该服务
notepad--------打开记事本
nusrmgr.cpl-------同control userpasswords,打开用户帐户控制面板
Nslookup-------IP地址侦测器
oobe/msoobe /a----检查XP是否激活
perfmon.msc----计算机性能监测程序
progman--------程序管理器
regedit----------注册表编辑器
regedt32-------注册表编辑器
regsvr32 /u *.dll----停止dll文件运行
route print------查看路由表
rononce -p ----15秒关机
rsop.msc-------组策略结果集
rundll32.exe rundll32.exe %Systemroot%System32shimgvw.dll,ImageView_Fullscreen----启动一个空白的Windows 图片和传真查看器
secpol.msc--------本地安全策略
services.msc---本地服务设置
sfc /scannow-----启动系统文件检查器
sndrec32-------录音机
taskmgr-----任务管理器(适用于2000/xp/2003)
tsshutdn-------60秒倒计时关机命令
winchat--------XP自带局域网聊天
winmsd---------系统信息
winver-----显示About Windows 窗口
wupdmgr-----------Windows Update
㈩ 执行bat @被识别为中文
这个符号不可能会被识别成中文符,因为该字符没有中文版的,你看看是不是你的脚本编码不对了?批处理文件的编码为ANSI才对。