cmd命令里面set count==%%a命令作用是什么?

收集整理的这篇文章主要介绍了,小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我真的想知道为什么我的字符串替换在包含任何特殊字符(感叹号)的文本时起作用.我预计延迟变量扩展会&符号,百分号等的特殊含义,但会因感叹号而失败…

1年半后,我不得不再次此段.请参阅另外两个处理毒性字符的示例.第是暂时启用延迟扩展(请参阅Ansgars答案),第二个CALL.两者都将当前中和下面的非空的和,但不会跟踪驱动器号和当前的.

示例#1(在“ =! …”集合中包含双引号,并且不需要echo“!!”>> …):

示例#2(较慢,需要包含双引号):

那是因为在“ne = %% a”后启用了延迟扩展:

如果在分配%% a之前启用延迟扩展:

:延迟扩展控制何时扩展语句中的变量.中的关键语句就是行

它将循环变量%% a的值赋给变量行.如果禁用延迟扩展,则会分配%% a的值,因为解释器无法在分析时扩展%% a.但是,当您启用延迟扩展时,爆炸变量会在执行时扩展,因此解释器会查看%% a的值并展开任何!在将结果分配给变量行之前.

例子也许会变得更加清晰.如果一行

到输入并在中定义变量:

在“ne = %% a”之后启用延迟扩展时,既没有%foo%也没有!foo!在%% a被赋值给变量行之前被扩展(解释器在执行之前没有看到%% a的值),所以你得到:

在“ne = %% a”之前启用延迟扩展时,解释器会在将结果赋给变量行之前扩展爆炸变量,因此您将获得此:

%foo%只会在时扩展,此时解释器无法看到%% a的实际值,因此%foo%仍然是%foo%.

=%NewExtension%!”不要影响变量中的刘海或百分号,因为扩展不是传递的,即它会翻译!行!到%foo%(或%foo%!foo!)停止.

但是,您可以call命令强制扩展变量内的()变量.命令为“ne =!ne!”首先在当前上下文中扩展为set“ne =%foo%”,在新的上下文中set“ne =%foo%”,其中%foo%也扩展为,因此变量行被赋值为条形栏.

正如旁注:你的太复杂了.你会得到完全相同的结果:

以上是为你收集整理的全部内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得网站内容还不错,欢迎将推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!
第一次执行WMIC命令时,Windows首先要安装WMIC,然后显示出WMIC的命令行提示符。在WMIC命令行提示符上,命令以交互的方式执行
执行“wmic”命令启动WMIC命令行环境。这个命令可以在XP或 .NET Server的标准命令行解释器( Server终端服务会话使用。
第一次执行WMIC命令时,Windows首先要安装WMIC,然后显示出WMIC的命令行提示符。在WMIC命令行提示符上,命令以交互的方式执行。
wimic的运行方式可以有两种法:
1、搞入wimic进入后输入命令运行,键入wimic后出现wmic:root\cli>时你就可以输入命令了,如输入process显示所有的进程。不知道有什么命令时可以输入用/?来显示帮助。exit 是退出交互模式。具体帮助用法如下:
/? 或 -? 显示所有全局开关和别名的语法
如:我要查看process命令的帮助,键入:process/?后显示如下:
提示: BNF 的别名用法。
下面我们能过一些实例来说明用法:
STARTUP - 用户登录到计算机系统时自动运行命令的管理
★★查看msconfig中的启动选项
SYSDRIVER - 基本服务的系统驱动程序管理
★★查看当前系统打了哪些补丁
远程计算机的远程桌面连接
★★WMIC命令开启远程计算机的远程桌面连接
wmic 获取进程名称以及可执行路径:
wmic 删除指定进程(根据进程名称):
在远程机器上创建新进程:
wmic 结束可疑进程(根据进程的启动路径)
wmic 获取物理内存
wmic 获取文件的创建、访问、修改时间
wmic 全盘搜索某文件并获取该文件所在目录
设置虚拟内存到E盘,并删除C盘下的页面文件,重启计算机后生效
获得进程当前占用的内存和最大占用内存的大小:
远程打开计算机远程桌面
在这篇文章里也许你看不到很多奇特有用的的实际例程,但是呢,授人以鱼不如授人以渔,希望我的文章能让你通俗易懂的了解一些wmic的基本知识,可以有一个学习的兴趣,让自己继续深研一下wmic。
在WINDOWS\Help目下,wmic.chm文档是这样解释wmi的:Windows Management Instrumentation (WMI) 是“基于 Web 的企业管理倡议 (WBEM)”(这是一个旨在建立在企业网络上访问和共享管理信息的标准的工业倡议)的 Microsoft 的实现。有关 WBEM 的详细信息,请访问 WBEM。XOXWMI 为公用信息模型 (CIM)(该数据模型描述存在于管理环境中的对象)提供完整的支持。WMI 包括对象储备库和 CIM 对象管理器,其中对象储备库是包含对象定义的数据库,对象管理器负责处理储备库中对象的收集和操作并从 WMI 提供程序 (WMI provider) 收集信息。WMI 提供程序 (WMI provider) 在 WMI 和操作系统、应用程序以及其他系统的组件之间充当中介。例如,注册表提供程序从注册表中提供信息,而 SNMP 提供程序则从 SNMP 设备中提供数据和事件。提供程序提供关于其组件的信息,也可能提供一些方法,这些方法可以操作可设置的组件、属性,或者操作可能警告您在组件中要发生更改的事件。Windows Management Instrumentation 命令行 (WMIC) 向您提供了简单的 Windows Management Instrumentation (WMI) 命令行界面,这样即可利用 WMI 来管理运行 Windows 的计算机。WMIC 与现有命令行程序和实用程序命令相互操作,且很容易通过脚本或其他面向管理的应用程序来扩展 WMIC。
以上的这些说法太专业了,通俗一点讲就是wmic.exe是一个命令行程序,可以用它这个接口来实现在命令行下直接管理计算机软硬件等方方面面的操作,相当于批处理的api了。
一、wmic的基本命令格式简析
经常看网上的相关资料的话,读者可能会对wmic有一个基本的认识,不过看得越多估计会越糊涂,起码我是这样认为的。其实简单总结一下,命令格式就是 “wmic+全局开关+别名+wql语句+动词+副词(或者说是动词的参数)+动词开关”而已了。这个命令格式可以根据需要来写全或者写部份格式,我这里依次对格式的每个名称按自己的理解来解释一下,不过肯定完全不符合微软专家的定义,只是让大家弄懂它们而已。
交互模式。如果你在命令提示符下或通过"运行"菜单只输入WMIC,都将进入WMIC的交互模式,每当一个命令执行完毕后,系统还会返回到WMIC提示符下,如"Root\cli",交互模式通常在需要执行多个WMIC指令时使用。交互模式有时还会对一些敏感的操作要求确认,比如删除操作,最大限度地防止用户操作出现失误。
非交互模式。非交互模式是指将WMIC指令直接作为WMIC的参数放在WMIC后面,当指令执行完毕后再返回到普通的命令提示符下,而不是进入到WMIC上下文环境中。WMIC的非交互模式主要用于批处理或者其他一些脚本文件中,我在本文中一律用●非交互模式●示例。
开关有以下的全局开关,打入wmic.exe /?可以看到的(这里我们先不讨论每个开关的具体意思,具体用法看示例):
/NAMESPACE 别名使用的名称空间路径。
/ROLE 包含此别名定义的角色路径。
/NODE 别名使用的服务器。
/LOCALE 客户应用的语言识别符。
/RECORD 将所有输入命令和输出写入日志。
/USER 会话期间使用的用户。
/OUTPUT 为输出重新定向指定模式。
/APPEND 为输出重新定向指定模式。
至于别名啦,就是给主板、服务、系统、进程啦这些和计算机相关的东东起了个英文名,在wmic.exe /?命令行下也可以看到。
wql语句和我们平常用的注入时的sql语句的语法几乎是一模一样,甚至更简单。一般是where name="xxx" and 之类的,不过有时候要把name=“xxx"这样的格式换成"name='xxx'"或者是where(name='xxx')这样,反正正常情况下不行的话就换个写法。
动词呢,就那么简单几个assoc、call、CREATE、DELETE、GET、LIST、SET,从英文名字上应当可以看出它们是用来干什么的。不过说实话,assoc我真的还没用到过。
至于副词(动词的参数),就是得到用动词+它的参数得到对象的属性。像属于list动词的副词,就是显示个什么样的呀,例如显示详细状态或简要状态。
动词开关就好比显示个横表格式的或者显示个竖表格式的或者输出个什么样格式的文件,或者是几秒来重复显示信息等等,有的动词并没有开关。
二、一步一步来完成我们的wmic命令行
wmic里有个别名是logicaldisk,就是对磁盘进行管理。我们先按照最简单的格式来写,在cmd命令行下输入●wmic logicaldisk list●(wmic.exe+别名+list动词),稍等一会儿屏幕上会出现本地硬盘的各式各样的数据,看上去杂乱无章。这样子太不方便看了,我们来改写一下,改成●wmic logicaldisk list brief●,在list动词后加个brief参数,也就是brief副词,显示的就会很整齐,效果如下:
大家可能注意到了上面命令行中有动词list和副词brief。list动词决定显示的信息格式与范围,它有Brief、Full、Instance、 Status、System、Writeable等多个参数(副词),full只是它的一个参数,也是list的缺省参数,表示显示所有的信息。其他几个参数顾名思义,如Brief表示只显示摘要信息,Instance表示只显示对象实例,Status表示显示对象状态,Writeable表示只显示该对象的可写入的属性信息等。
这样一来,我们最后的语句基本符合了我文章开头说的wmic的命令格式是“wmic+开关+别名+wql语名+动词+副词(或者说是动词的参数)+动词开关”。不过wmic可不只能对本机操作,还可以对远程机器进行操作,我们再来加三个全局开关,让我们的这条命令对远程格式进行操作,命令就是:
其中node开关表示对哪台机器进行访问,user和password当然是远程机器的用户名和密码了,这个命令有了以上的讲解,大家应当一目了然了吧。到现在为止,我们的动词只用到了get和list,我们再加一个set来改变c:盘的卷标。命令如下:●WMIC logicaldisk where "name='c:'" set VolumeName ="lcx"●,这样大家就更进一步清楚了这个格式的用法。写了这么多字,也许你要问到我wmic最有用的开关是什么,当然是"?"了,如果那个命令不会用,可以用wmic /? 、WMIC logicaldisk /?、WMIC logicaldisk list /?、WMIC logicaldisk set /?这样仪次来查询用法。
这篇文章估计会有让观众上当受骗的感觉,一个wmic的磁盘命令写了这么长的篇幅,不过我想有了本文的基础,你研究wmic其它的别名像进程、服务、bios、主板呀,都会有一个切入点,具体的好的技巧如开3389等就要靠大家去研究发现了。
【例】将当前系统BIOS,CPU,主板等信息输出到一个HTML网页文件,命令如下:
::得到系统信息.bat,运行bat文件即可
WMIC命令参数帮助参考:
ALIAS - 访问本地机器上的别名
FSDIR - 文件目录系统项目管理。
JOB - 提供对使用计划服务安排的工作的访问。
LOADORDER - 定义执行依存的系统服务管理。
MEMLOGICAL - 系统内存管理 (配置布局和内存可用性)。
NETLOGIN - (某一用户的)网络登录信息管理。
ONBOARDDEVICE - 母板(系统板)内置普通设适配器设备的管理。
OS - 已安装的操作系统管理。
QFE - 快速故障排除。
RECOVEROS - 当操作系统失败时,将从内存收集的信息。
STARTUP - 用户登录到计算机系统时自动运行命令的管理。
SYSDRIVER - 基本服务的系统驱动程序管理。
SYSTEMSLOT - 包括端口、插口、附件和主要连接点的物理连接点管理。
VOLTAGE - 电压感应器 (电子电量计) 数据管理。

我要回帖

更多关于 setcolumncount 的文章

 

随机推荐