如果想更多的学习windows系统批处理知识,下面这几篇文章或许能够帮助你
#比如查看cd命令的帮助文档
cd /?
set PATH=%PATH%;D:\xxx
此命令只对当前窗口有效,批处理或cmd窗口一关闭,变量就恢复原来的值了。
方法一
setx BAT_HOME C:\bat
注意:此命令会将变量添加到用户环境变量中。
方法二
setx /M BAT_HOME C:\bat
当前用户执行时,有可能会提示”错误: 拒绝访问注册表路径。”,如下
要使用管理员身份执行,才能执行成功。
方法三 通过注册表设置
::添加环境变量 BAT_HOME
@echo off
echo 添加 bat 环境变量
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
set evname=BAT_HOME
set batpath=c:\bat
reg add "%regpath%" /v %evname% /d %batpath% /f
pause>nul
==必须以管理员权限运行==
::删除环境变量 BAT_HOME
@echo off
echo 删除bat环境变量
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
set evname=BAT_HOME
reg delete "%regpath%" /v "%evname%" /f
pause>nul
color [attr]
下面是颜色代码:(如 color fc 为亮白色产生亮红色,第一个背景,第二个前景)
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
描述:
SC 是用于与服务控制管理器和服务进行通信的命令行程序。
用法:
sc <server> [command] [service name] <option1> <option2>...
选项 <server> 的格式为 "\\ServerName"
键入 "sc [command]" 可以获得有关命令的进一步帮助
命令:
query-----------查询服务的状态,
或枚举服务类型的状态。
queryex---------查询服务的扩展状态,
或枚举服务类型的状态。
start-----------启动服务。
pause-----------向服务发送 PAUSE 控制请求。
interrogate-----向服务发送 INTERROGATE 控制请求。
continue--------向服务发送 CONTINUE 控制请求。
stop------------向服务发送 STOP 请求。
config----------更改服务的配置(永久)。
description-----更改服务的描述。
failure---------更改服务失败时执行的操作。
failureflag-----更改服务的失败操作标志。
sidtype---------更改服务的服务 SID 类型。
privs-----------更改服务的所需权限。
qc--------------查询服务的配置信息。
qdescription----查询服务的描述。
qfailure--------查询失败时服务执行的操作。
qfailureflag----查询服务的失败操作标志。
qsidtype--------查询服务的服务 SID 类型。
qprivs----------查询服务的所需权限。
qtriggerinfo----查询服务的触发器参数。
qpreferrednode--查询首选的服务 NUMA 节点。
delete----------(从注册表)删除服务。
create----------创建服务(将其添加到注册表)。
control---------向服务发送控制。
sdshow----------显示服务的安全描述符。
sdset-----------设置服务的安全描述符。
showsid---------显示相应于假定名称的 SID 字符串。
triggerinfo-----配置服务的触发器参数。
preferrednode---设置首选的服务 NUMA 节点。
GetDisplayName--获取服务的 DisplayName
GetKeyName------获取服务的 ServiceKeyName。
EnumDepend------枚举服务的依存关系。
下列命令不要求服务名称:
sc <server> <command> <option>
boot------------(ok | bad) 指示是否将上一次启动保存为
最近一次已知的正确启动配置
Lock------------锁定服务数据库
QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
sc start MyService
#查看帮助
sc create /help
#添加redis到服务中
sc create redis-server binPath= D:/develop/Redis5/redis-server.exe
创建快捷方式
C:\>mklink /?
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接,而不是符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。
chdir "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\"
cd /d D:\apps
rmdir /s /q D:\apps
s 表示删除目录以及目录内所有的内容
q 表示静默模式
xcopy /e /i D:\apps\DingDing D:\develop\DingDing2
e 表示复制目录和子目录,包括空目录
i 表示如果目标不存在,且复制了多个文件,则假定目标是目录
:: 下面这个命令执行时,会有一个新窗口一闪而逝
start cmd /c echo '这是一个新窗口'
:: 让新窗口不消失
start cmd /k echo '这是一个新窗口'
:: 在新窗口执行了2个或n个命令
start cmd /c "echo '这是一个新窗口'&echo 'Hello New Cmd'"
taskkill /f /t /im qq.exe
基于 && 和 || 本身的逻辑运算特性。
&& 希望连接的所有语句都为真。所以当前一个语句为真,就会接着会执行下一语句;如果前一个语句为假,则不会继续执行。
|| 只要求连接的所有语句有一条是真的就行。所以当前一个语句为假,才会继续执行下一条语句;如果前一条语句为真,则不会继续执行。
#进入apps目录成功后,再进入 DingDing 目录
cd apps && cd DingDing
## 进入apps目录失败,则进入develop目录
cd apps || cd develop
#进入apps目录成功,则进入DingDing目录,否则进入develp目录
cd apps && cd DingDing || cd develop
逻辑尽量不要搞得太复杂,以免影响代码的阅读性!!!