为了构build一个自动卸载脚本,我一直在努力获得批量使用WMIC的特定输出。 我碰到的问题是,我试图删除的应用程序的卸载程序是在每个系统上自动生成的SSID下创build的(例如:C: ProgramData {07BFF8FA-C12F-46C7-8239-8EE83E21B5DA} 程序名 UNINSTALL.EXE)。 正因为如此,我不能build立一个基于registry的静态卸载位置,因为卸载程序string也是在registry中相同的SSID。
我已经尝试了几种不同的拉动卸载信息的方式,唯一一个我登陆的就是使用WMIC:
wmic product where "name like '%product name%'" get name
其输出:
name <product-name>
^和一个额外的回车,回车是问题。 它设置variables,然后清除它。
如何批量使用“IF EXIST”?
如何测量batch file中循环的执行时间
批量从variables中删除%
如何在batch file中并行运行指令/命令?
batch file检查文件列表是否存在。 不适用于空格
这是for循环我试图用来得到这个工作:
@echo off for /f "skip=1 delims==" %%a in ( 'wmic product where "name like '%product-name%' get name' ) do set PROD=%%a echo %PROD%
其输出:
C:Usersadministrator>ECHO is off.
这意味着%PROD%variables根本没有被定义。
如果我用@echo打开批处理,我得到这个:
:Usersadministrator>echo <product-name> <product-name> :Usersadministrator>echo ECHO is on.
注意输出缺less驱动器号。 这正是我所看到的,所以这很奇怪,而且参数正在设置,echo'd然后未设置。
我也试图通过文本文件中继来做到这一点:
wmic /OUTPUT:%~dp0wmic.txt product where "name like '%product-name%'" get name for /f %%a in ( "%~dp0wmic.txt" | findstr /v "product-name" ) do set PROD=%%a
任何帮助/build议将是最受欢迎的!
UPDATE!
下面的链接由npocmaka提供,我想出了这个:
for /f "skip=1 delims=" %a in ('wmic product where "name like '%product-name%'" get name') do @for /f "delims=" %b in ("%a") do @echo %b
正确输出产品名称
但是,当我从批处理运行它为:
for /f "skip=1 delims=" %%a in ( 'wmic product where "name like '%product-name%'" get name' ) do @for /f "delims=" %%b in ("%%a") do echo %%b
我得到:
No Instance(s) Available.
对我而言,这听起来像是WMIC在语法上有什么问题
解决了!
感谢npocmaka提出了一个嵌套的FOR循环,并指出了WMICvariables的转义逻辑
批量使用的命令的正确语法:
for /f "skip=1 delims=" %%a in ( 'wmic product where "name like '%%product-name%%'" get name' ) do @for /f "delims=" %%b in ("%%a") do @echo %%b
谢谢你们!
需要在windows服务器上创buildbat文件以从文件夹移动旧的(60天)文件
batch file帮助:确定版本以决定 *** 作
将文件夹复制到具有不同%userprofile%的多个服务器%
嵌套批处理结构执行被终止
批处理脚本帮助清除历史logging不与问题的CLS
编辑 。发现%是需要被用作通配符
@echo off for /f "skip=1 delims==" %%a in ( 'wmic product where "name like '%%product-name%%'" get name /format:table' ) do ( for /f "tokens=* delims=" %%# in ("%%a") do set PROD=%%a ) echo %PROD%
这里解释一下
总结以上是内存溢出为你收集整理的从WMIC获取产品名称作为批量variables全部内容,希望文章能够帮你解决从WMIC获取产品名称作为批量variables所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)