gpt4 book ai didi

powershell - 喜欢在变量中获取 powershell 脚本的输出以在批处理文件中使用

转载 作者:行者123 更新时间:2023-12-02 18:53:24 26 4
gpt4 key购买 nike

我有以下“powershell脚本”

Get-WMIObject -Query "SELECT * from win32_logicaldisk WHERE DriveType = '3'" | Measure-Object -Property Size -Sum | select -ExpandProperty SUm

我想用它来实现它,但我的 var 变量是空的。我认为它与“或”有关,但我是新手,我对脚本的了解不是那么好。有人可以帮我解决这个愚蠢的事情吗?

FOR /F "tokens=* USEBACKQ" %%F IN (`powershell -noprofile {Get-WMIObject -Query "SELECT * from win32_logicaldisk WHERE DriveType = '3'" | Measure-Object -Property Size -Sum | select -ExpandProperty SUm}`) DO (
SET var=%%F

最佳答案

主要问题是 PowerShell 中的许多字符会批量执行其他操作,并且它们会干扰 for 循环的工作方式。将其与进入 for/F 循环的额外字符串处理层相结合,就需要大量额外的转义。

最终,所有内容都加上引号,双引号加上转义内部引号似乎可以解决问题。

@echo off
FOR /F "tokens=* USEBACKQ" %%F IN (`powershell -noprofile "Get-WMIObject -Query \""SELECT * from win32_logicaldisk WHERE DriveType = '3'\"" | Measure-Object -Property Size -Sum | select -ExpandProperty Sum"`) DO (
SET var=%%F
)
echo %var%

关于powershell - 喜欢在变量中获取 powershell 脚本的输出以在批处理文件中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66460919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com