从WMIC获取产品名称作为批量variables

从WMIC获取产品名称作为批量variables,第1张

概述从WMIC获取产品名称作为批量variables

为了构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所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1289458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存