dos脚本语法学习
- 一个dos批处理脚本,通过关键字搜索注册表并删除,坑很多,语法也很怪异,详情看注释
@echo off
::声明采用UTF-8编码,避免中文乱码问题,>NUL可以吞掉chcp输出的内容
chcp 65001 >NUL
set key_word="hello"
set recursive=1
set end_key_word=End
::now let us do it.
echo "--------------------------------------------------------------------------------------------"
call :search_del_reg_func HKEY_CLASSES_ROOT
call :search_del_reg_func HKEY_CURRENT_USER
call :search_del_reg_func HKEY_LOCAL_MACHINE
call :search_del_reg_func HKEY_USERS
call :search_del_reg_func HKEY_CURRENT_CONFIG
goto :end_print
::search and delete the regedit function
:search_del_reg_func
set search_path=%1
set reg_cmd="REG QUERY %search_path% /f %key_word% /s "
::not recursive
if %recursive%==0 (
echo Scanning normally... key_word:%key_word% Root Path: %search_path%
set reg_cmd="REG QUERY %search_path% /f %key_word% "
)else (
echo Scanning recursivly... key_word:%key_word% Root Path: %search_path%
)
FOR /F "tokens=* " %%a IN ('%reg_cmd%') do (
::使用block的方式来执行,因为for里面不能使用goto,会破坏for循环结构
call :for_func %%a %%b
echo:
echo:
)
goto :eof
:: for loop's block
:for_func
set item="%1"
set flags=%item:~1,3%
set flags=%flags:"=%
if "%flags%"=="%end_key_word%" (
goto end_flags
)
if "%flags%"=="" (
goto end_flags
)
::延迟userinput的解析,在dos里面,()里面的代码会被提前解析,如果不设置该选项的话,会导致%choice%里面的东西始终是空的
setlocal EnableDelayedExpansion
set item="%1"
set /p choice=Really delete[**%1**]? y=yes n=no:
::没有真正的or,所以用这种很挫的方式来实现
if "!choice!"=="y" goto delete_reg
if "!choice!"=="yes" goto delete_reg
if "!choice!"=="n" goto not_del_reg
if "!choice!"=="no" goto not_del_reg
goto not_del_reg
:delete_reg
reg delete %item% /f
echo WARNNING: You just deleted reg[%item%]!!!!!
goto end_flags
:not_del_reg
echo INFO: You omit this reg [%item%]!!!
goto end_flags
:end_flags
endlocal
goto :eof
:end_print
echo "-------------------------------------OVER---------------------------------------------------"
dos脚本语法学习的更多相关文章
- shell脚本语法学习
以下内容仅为个人学习使用,如有错误,欢迎指出 持续更新............... 一.首先创建.sh文件,打开并在文件的第一行输入#!/bin/sh 执行shell文件命令为: . filenam ...
- shell脚本语法基础汇总
shell脚本语法基础汇总 将命令的输出读入一个变量中,可以将它放入双引号中,即可保留空格和换行符(\n) out=$(cat text.txt) 输出1 2 3 out="$(cat te ...
- 详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- Robot Framework语法学习(一)
Robot Framework语法学习: 一.变量的声明.赋值与使用 1.变量标识符:每个变量都可以用 变量标识符 ${变量名} 来表示. 2.变量声明:可以在TestSuite上点右键或者在Edi ...
- Lua 脚本语法说明(转)
Lua脚本语法说明(增加lua5.1部份特性) Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱. 所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了.估计看完了,就懂得 ...
- Shell脚本编程学习入门 02
Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #! ...
- Wshshell 脚本简单学习
WshShell 的简单语法 学习 同事给了一个脚本自动执行 部署命令 感觉挺好的 , 年前一直说要学习一下 但是一直没有学习(自己太懒了) 这次简单总结一下. 创建对象: Set WshShell ...
- Lua脚本语法说明(转)
Lua脚本语法说明(增加lua5.1部份特性) Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱. 所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了.估计看完了,就懂得 ...
- Lua脚本语法说明(转):
Lua脚本语法说明(增加lua5.1部份特性) 转自:http://www.cnblogs.com/ly4cn/archive/2006/08/04/467550.html Lua 的语法比较简单,学 ...
随机推荐
- Java 并发编程(一) → LockSupport 详解
开心一刻 今天突然收到花呗推送的消息,说下个月 9 号需要还款多少钱 我就纳了闷了,我很长时间没用花呗了,怎么会欠花呗钱? 后面我一想,儿子这几天玩了我手机,是不是他偷摸用了我的花呗 于是我找到儿子问 ...
- [基本运算符、流程控制之if判断、与用户交互、深浅拷贝]
[基本运算符.流程控制之if判断.与用户交互] 基本运算符 1.算数运算符 python支持的算术运算符与数学上计算的符号使用是一致的 salary = 3.3 res = salary * 12 p ...
- [java] XML DTD XSD
XML是用来干什么的 https://bbs.csdn.net/topics/120762 https://blog.csdn.net/Rain722/article/details/52925828 ...
- 1.消息队列(queue)
版权声明:本文为博主原创文章,未经博主允许不得转载.https://www.cnblogs.com/Dana-gx/p/9724545.html 一.基本概念 IPC:Linux下的进程通信.包括6种 ...
- 在Vim中查看文件编码和文件编码转换
在Vim中查看文件编码和文件编码转换 风亡小窝 关注 0.2 2016.09.26 22:43* 字数 244 阅读 5663评论 0喜欢 2 在Vim中查看文件编码 :set fileencodi ...
- XRDP freerdp
服务器上 freerdp 桌面上有XRDP
- k8s管理机密信息(12)
一.启动应用安全信息的保护 1.Secret介绍 应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥.将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解决方案是 ...
- OS_FLAG_GRP_DEPLETED
178 * OS_FLAG_GRP_DEPLETED 系统没有剩余的空闲事件标志组,需要更改OS_CFG.H中 179 * 的事件标志组数目配置创建 标志组的时候返回这个错误 打印出错误代码后发现是1 ...
- VS Code 安装后的一些配置项
说明: 个人一直使用Notepad++作为日常文本编辑器,由于之前出现的某个原因,故决定改用VS Code. •设置中文字体 • 输入快捷键 Ctrl+Shift+P • 输入 Configure D ...
- Java--反射机制——反射 API(Day_04)
生活中迷茫感的产生,往往源之于坚持一件事放弃的那一刻,因为从那一刻起,你开始变得无聊,变得没有方向感. 运行环境 JDK8 + IntelliJ IDEA 2018.3 本文中使用的jar包链接 h ...