【发布时间】:2015-06-09 12:27:05
【问题描述】:
$i=0;$pnp = pnputil -e;
$matched = [regex]::matches($pnp, ".......................................Lexmark International");
$split = $matched -split (".........inf");
$replace = $split -replace " Driver package provider : Lexmark International","";
$replace1 = $replace -replace " ","`n";write-output $replace1;
foreach ($i in $replace1){;$pnpdel = pnputil -f -d $i;$pnpdel;};
Reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\Version-3\Lexmark Universal v2 XL" /f;
net stop spooler;net start spooler;start \\officechicprt5\111W-22E-CPRN-01
如您所见,我的脚本尝试从 pnpitil -e 命令中提取 oem*.inf 值。我试图让每个 oem##.inf 文件在 For 循环中成为它自己的变量。我的脚本在所有替换和拆分方面都有些混乱,但那部分似乎得到了我需要的命令部分。我对 $i 中的数据有疑问。似乎该脚本有时会起作用,有时则不会。对于它在 pnputil 枚举中找到的每个 oem#,我想要 pnputil -d oem99.inf。我在 For 循环中做错了什么?必须有更好的方法...如您所知,我对此还是很陌生。
再次感谢。 布伦特
【问题讨论】:
-
"脚本似乎有时可以工作,有时不能。"当它似乎不起作用时会发生什么?
-
pnputil 命令会返回错误,基本上是“无法删除”。
标签: regex powershell replace split