【问题标题】:Powershell get "-command" switch value in scriptPowershell在脚本中获取“-command”开关值
【发布时间】:2018-06-20 14:44:46
【问题描述】:

从命令行调用脚本时
如何在“-command”开关(或-file)之后获取令牌
(原始字符串...独立于 params()...作为 C 中的 args[])

我的意思是……脚本名称和脚本参数

$args 不显示这些值
$MyInvocation 也没有提供这些数据

谢谢!

【问题讨论】:

  • 为什么?你在解决什么问题?
  • 我需要知道 '-command' 或 '-file' 参数中传递了什么来更改 PowerShell 配置文件脚本中的一些变量
  • 但是为什么呢?你想做什么?
  • 我构建动态环境分析powershell脚本名称字符串...“acgt-kk-”脚本已经在环境中定义了一些数据...“acgt-rr-* i>" 具有由配置文件脚本定义的不同数据......等等等等以及无脚本名称的特殊情况(命令行中的no -command

标签: powershell command-line parameters


【解决方案1】:

如果您想查看原始命令行参数,您需要检索关联的 Win32_Process wmi 实例的 CommandLine 属性:

(Get-CimInstance Win32_Process -Filter "ProcessId = $PID").CommandLine

【讨论】:

  • 感谢 Mathias...那里有很棒的信息.. (Get-CimInstance Win32_Process -Filter "ProcessId = $PID") | select * ...我想知道我们是否可以从powershell环境中获取此信息而无需重复到WMI(使用跨平台我认为Win32_Process将不可用)
  • 我也想只获取命令行调用的脚本数据... [0]=script-full-path... 和 [1..n] 传递给脚本的参数...这两项恢复到“-command”或“-file”命令行开关之后传递的所有内容...所以它应该在powershell环境中可用!!!
  • 我几乎得到了你用“Get-Process -Id $PID | select *”指出的所有信息......它没有提供powershell.exe命令行中存在的参数而失败调用--- :(
  • 嗨,Matias,我已接受您的回答,因为我没有找到其他解决方案来解决从配置文件脚本内部检查命令行的问题...谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-04
相关资源
最近更新 更多