• 一个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脚本语法学习的更多相关文章

  1. shell脚本语法学习

    以下内容仅为个人学习使用,如有错误,欢迎指出 持续更新............... 一.首先创建.sh文件,打开并在文件的第一行输入#!/bin/sh 执行shell文件命令为: . filenam ...

  2. shell脚本语法基础汇总

    shell脚本语法基础汇总 将命令的输出读入一个变量中,可以将它放入双引号中,即可保留空格和换行符(\n) out=$(cat text.txt) 输出1 2 3 out="$(cat te ...

  3. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  4. Robot Framework语法学习(一)

    Robot Framework语法学习: 一.变量的声明.赋值与使用 1.变量标识符:每个变量都可以用  变量标识符 ${变量名} 来表示. 2.变量声明:可以在TestSuite上点右键或者在Edi ...

  5. Lua 脚本语法说明(转)

    Lua脚本语法说明(增加lua5.1部份特性) Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱. 所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了.估计看完了,就懂得 ...

  6. Shell脚本编程学习入门 02

    Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):   #! ...

  7. Wshshell 脚本简单学习

    WshShell 的简单语法 学习 同事给了一个脚本自动执行  部署命令 感觉挺好的 , 年前一直说要学习一下 但是一直没有学习(自己太懒了) 这次简单总结一下. 创建对象: Set WshShell ...

  8. Lua脚本语法说明(转)

    Lua脚本语法说明(增加lua5.1部份特性) Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱. 所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了.估计看完了,就懂得 ...

  9. Lua脚本语法说明(转):

    Lua脚本语法说明(增加lua5.1部份特性) 转自:http://www.cnblogs.com/ly4cn/archive/2006/08/04/467550.html Lua 的语法比较简单,学 ...

随机推荐

  1. c#RSA 私钥加签公钥解签

    /// RSA签名 /// </summary> /// <param name="data">待签名数据</param> /// <pa ...

  2. 论文笔记:RankIQA

    0.Abstract 本文提出了一种从排名中学习的无参考图像质量评估方法(RankIQA).为了解决IQA数据集大小有限的问题,本文训练了一个孪生网络,通过使用合成的已知相对图像质量排名的数据集来训练 ...

  3. Spring Cloud Alibaba(12)---Gatway概述、简单示例

    Gatway概述.项目搭建 前言 有关网关的概念之前这里不在概述,因为之前在写zuul网关的时候有详细陈述过,地址如下: SpringCloud(7)---网关概念.Zuul项目搭建 SpringCl ...

  4. jekyll-admin的搭建和使用

    通过jekyll搭建好了自己的博客.写博客成为了日常,经过一段时间的摸索,发现jekyll-admin是个好东西,它是博客的后台管理系统,可以方便的管理和编写自己的博客 安装 运行命令gem inst ...

  5. [Web] 计算机网络课程(一)

    局域网 覆盖范围小,自己花钱买设备,自己单位维护 线长不超过100米,带宽固定(10M 100M 1000M) 星形结构,上层交换机口少,但每个口带宽高 广域网 距离远 如在家通过ADSL拨号上网,或 ...

  6. 一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程

    一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程原创CrownP 最后发布于2019-02-05 00:48:30 阅读数 2982 收藏展开1.更改为阿里云的源点击软件和更新 点击其 ...

  7. 归一化方法总结 | 又名“BN和它的后浪们“

    前言: 归一化相关技术已经经过了几年的发展,目前针对不同的应用场合有相应的方法,在本文将这些方法做了一个总结,介绍了它们的思路,方法,应用场景.主要涉及到:LRN,BN,LN, IN, GN, FRN ...

  8. nginx 的基础知识(三)

    Nginx命令 nginx -s reopen 重启nginx nginx -s reload  重新加载nginx文件 nginx -s stop  停止nginx服务 nginx -s quit ...

  9. macOS Big Sur 11.3 (20E232) 正式版发布,百度网盘下载

    本站提供的 macOS Big Sur 软件包,即可以直接拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者直接在虚拟机中启动安装. 请访问原文链接:https: ...

  10. Scrapy爬虫返回302重定向问题解决方法

    scrapy爬虫遇到爬取页面时302重定向导致response页面与实际需要爬取的页面信息不一致,导致无法正常获取信息,查看日志存在 scrapy.downloadermiddlewares.redi ...