[玩转系统] 在 PowerShell 中将字符串作为命令运行 [4 种方法]
作者:精品下载站 日期:2024-12-14 05:29:34 浏览:15 分类:玩电脑
在 PowerShell 中将字符串作为命令运行 [4 种方法]
使用 Invoke-Expression
Cmdlet
使用 Invoke-Expression
cmdlet 在 PowerShell 中将字符串作为命令运行。 Invoke-Expression cmdlet 将字符串计算为命令并返回字符串表达式的结果。
这是一个简单的示例:
使用及操作员:
$command = "notepad.exe"
Invoke-Expression $command
这将打开新的记事本窗口。
这是更复杂的例子。
使用调用表达式 Cmdlet:
$command = "Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 5"
Invoke-Expression -Command $command
输出 :
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
1456 205 329656 294348 670.89 6328 3 Grammarly.Desktop
2564 67 326064 354484 503.28 12276 3 chrome
524 24 776508 798760 444.05 1248 3 chrome
644 17 7196 21308 400.55 12324 3 SynTPEnh
1420 41 315816 308592 394.67 8188 3 chrome
Invoke-Expression
将字符串计算为 PowerShell 表达式,允许您执行任何有效的 PowerShell 命令或脚本。例如,上面的代码按以下方式运行:
-
Get-Process
:检索系统上当前正在运行的进程的列表。 Sort-Object -Property CPU -Descending
:按CPU
属性(表示每个进程的 CPU 使用率)按降序对进程列表进行排序。Select-Object -First 5
:从排序的进程列表中选择前五个项目。
在 $command
变量中定义命令后,我们使用 Invoke-Expression
cmdlet 来执行存储在 $command
中的命令。此代码的输出是 CPU 使用率最高的前 5 个进程的列表,按降序排列。
使用 &
运算符
使用 &
运算符在 PowerShell 中将字符串作为命令运行
使用及操作员:
$command = "notepad.exe"
& $command
调用运算符 &
调用命令,就好像它是命令名称或函数一样。这允许您执行存储在变量中的命令或运行不在当前范围或路径中的命令。例如,上面的代码按以下方式运行:
- 字符串变量
$command
使用可执行文件(在本例中为notepad.exe
)进行初始化。 - 之后,使用调用运算符(
&
)来执行存储在$command
中的命令。这告诉 PowerShell 运行$command
中指定的可执行文件。在本例中,它启动了记事本应用程序。
使用双引号 (""
)
使用双引号
在 PowerShell 中将字符串作为命令运行。
使用双引号:
$filename = "File1.txt"
$command = "Get-Process | Out-File -FilePath <code>"E:$filename</code>""
Invoke-Expression -Command $command
File1.txt 文件的内容:
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
507 20 8804 16768 13328 0 AppHelperCap
773 43 36872 48716 9.02 1212 3 ApplicationFrameHost
318 17 3700 14256 3388 0 armsvc
315 16 105520 19700 0.34 3760 0 audiodg
555 24 409364 392232 505.98 1248 3 chrome
399 32 24192 47240 120.28 2476 3 chrome
255 16 18168 35456 0.23 5224 3 chrome
260 17 43572 65600 18.72 7476 3 chrome
1335 33 244596 226076 508.02 8188 3 chrome
... ... ... ... ... ... ...
... ... ... ... ... ... ...
... ... ... ... ... ... ...
上面的代码按以下方式运行:
- 创建字符串变量
$filename
,并将其设置为File1.txt
。 - 然后将
$command
变量设置为包含 PowerShell 命令的字符串,以获取正在运行的进程列表并将它们写入 E: 上具有指定文件名的文件中驾驶。 Out-File
cmdlet 用于将Get-Process
cmdlet 的输出写入具有指定文件名的文件。反引号 (`) 转义字符串中的双引号。- 然后使用
Invoke-Expression
cmdlet 执行存储在$command
变量中的命令。 - 此代码的输出是位于 E: 驱动器中名为
File1.txt
的文件,其中包含执行该命令时正在运行的进程的列表。
使用 [scriptblock]::Create()
方法
使用[scriptblock]::Create()
方法在PowerShell中将字符串作为命令运行。
使用 Create() 方法:
$commandString = "Get-ChildItem C:\TEST1"
$commandBlock = [scriptblock]::Create($commandString)
& $commandBlock
输出 :
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/21/2023 11:26 PM FolderA
d----- 2/21/2023 11:27 PM FolderB
-a---- 2/21/2023 9:32 PM 0 File1.txt
-a---- 2/21/2023 9:32 PM 0 File2.txt
上面的代码按以下方式运行:
- 代码块的第一行创建一个名为
$commandString
的变量,并将其值设置为"Get-ChildItem C:\TEST1"
。 - 之后,第二行使用
ScriptBlock
类的静态Create()
方法创建一个名为$commandBlock
的脚本块对象。Create
方法采用字符串作为输入,并返回可作为 PowerShell 命令执行的脚本块对象。在本例中,传递给Create()
的字符串是$commandString
变量的值,即"Get-ChildItem C:\TEST1"
.这将创建一个脚本块,表示带有参数C:\TEST1
的Get-ChildItem
命令。 - 最后,在最后一行代码中,使用调用运算符 (
&
) 来执行存储在$commandBlock
变量中的脚本块。调用运算符告诉 PowerShell 将脚本块视为命令并运行它。脚本块依次执行带有参数C:\TEST1
的Get-ChildItem
命令,该命令检索有关位于C 中的文件和文件夹的信息:\TEST1
目录。
考虑到上述解决方案,在 PowerShell 中将字符串作为命令运行是一个强大的工具,可以帮助您自动执行复杂的任务并执行高级系统管理任务。此外,按照最佳实践,您可以安全有效地使用此功能来管理您的 Windows 系统。
这就是如何在 PowerShell 中将字符串作为命令运行的全部内容。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag