基本上,我通过if(isset($_POST['name']) && $_POST['name']!=""){
// do something
}
生成了一个文本文件,其中一个客户端系统上具有所有当前的Windows更新。
文本文件显示为:
public interface IConn
{
CustomClass CC { get; set; }
}
public class Conn : IConn
{
public CustomClass CC { get; set; }
}
因此,我希望通过cmd执行命令(即使我必须抓住一些“外部”工具来完成它),以便从每一行的开头删除wmic
并离开我只有数字。
我设法通过以下方式“跳” HotFixID
KB3140768
KB3150513
KB...(and so on)
:
KB
但是我无法删除HotFixID
。
我的想法是,通过cmd / batch文件一次批量删除所有Windows更新。
答案 0 :(得分:2)
您不需要单独的文本文件,但可以直接在cmd行中解析wmic输出:
> for /f "skip=1delims=KB " %A in ('wmic qfe get HotfixID') do @for /f "delims= " %B in ("%A") do @echo:%B
4100347
4343669
...
在批处理文件中
@Echo off
for /f "skip=1delims=KB " %%A in ('wmic qfe get HotfixID'
) do for /f "delims= " %%B in (%%A) do echo:%%B
此简单方法适用于忽略前导定界符并且
只要要解析的内容不包含任何用作delims的字母。
答案 1 :(得分:0)
这是一种可能的解决方案(针对cmd):
for /f "skip=1 delims=KB" %A IN (your_file.txt) do @echo %A >> your_new.txt
对于批处理文件,您必须尝试:
for /f "skip=1 delims=KB" %%A IN (your_file.txt) do echo %%A >> your_new.txt
skip=1
选项会跳过文件的第一行,即HotFixID
。
delims=KB
选项不会将K
和B
解析为令牌。
为更好地理解for
命令/循环,请在新的cmd中键入for /?
。