当前位置: 首页 > 知识库问答 >
问题:

Powershell通过获取batchfile的内容来设置foreach-object中的变量

邹浩
2023-03-14

日安,

---------
set FILENAME=OIMSX4455
set USR=AJ34
set DOCTYPE=WORD
set YEAR=2019
---------

我的Powershell代码如下所示,尽管我不确定如何设置变量ie(将值“word”和“aj34”输入$doc和$user

$vars = "c:\temp\config.bat"
get-content $vars | select-string -pattern ("set DOCTYPE=","set USR=") 
foreach-object {
$doc=<should equal WORD>
$user=<should equal AJ34>
}

当我的配置文件发生变化并且有几个值时,我只对本例中set doctype=&set usr=i.WORD和AJ34的=sign后面的值感兴趣

在另一天,config值会发生变化,这就是为什么我需要再次将它们读入powershell变量中。对任何错误等提前道歉

谢谢

共有1个答案

乜钱明
2023-03-14

我认为最简单的方法是使用regex与开关进行逐行比较:

$user, $doc = $null
switch -Regex -File 'c:\temp\config.bat' {
    '^set USR\s*=\s*(.*)'     { $user = $matches[1] }
    '^set DOCTYPE\s*=\s*(.*)' { $doc = $matches[1] }
}

Write-Host "user: $user`tdoc: $doc"

结果:

user: AJ34  doc: WORD
 类似资料:
  • 本文向大家介绍Windows Powershell ForEach-Object 循环,包括了Windows Powershell ForEach-Object 循环的使用技巧和注意事项,需要的朋友参考一下 对管道对象逐个处理 如果使用Get-WmiObject 获取系统中的服务,为了排版可能会也会使用Format-Table对结果进行表格排版。 但是如果想对每个服务进行更定制化的处理可是使用Fo

  • 在foreach-object并行块下面捕获错误的最佳方法是什么,因为将有三个单独的线程/运行空间运行并执行块中编写的代码,并且多个错误/异常可能同时发生?是否可以捕获列表/变量中的所有错误,并在脚本执行结束时显示?

  • 本文向大家介绍java通过HttpServletRequest获取post请求中的body内容的方法,包括了java通过HttpServletRequest获取post请求中的body内容的方法的使用技巧和注意事项,需要的朋友参考一下 在java web应用中,我们如何获取post请求body中的内容?以及需要注意的问题。 通常利用request获取参数可以直接通过req.getParameter

  • 首先,我看到了这个话题,但我不能理解。 问题: 我做错了什么?

  • 本文向大家介绍Django之富文本(获取内容,设置内容方式),包括了Django之富文本(获取内容,设置内容方式)的使用技巧和注意事项,需要的朋友参考一下 富文本 1、Rich Text Format(RTF) 微软开发的跨平台文档格式,大多数的文字处理软件都能读取和保存RTF文档,其实就是可以添加样式的文档,和HTML有很多相似的地方 图示 2、tinymce插件 安装插件 pip instal