如何从批处理文件执行Powershell命令?多行注释

本文介绍了一种在批处理脚本(Bat)中调用Powershell并利用多行注释的方法,通过巧妙地利用两种脚本语言的注释差异,可以在Bat脚本中直接运行复杂的Powershell命令,而无需大量修改原有的Powershell脚本。此方法特别适用于需要在Windows环境中跨脚本语言操作的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单个bat中调用powershell 多行注释法

1. 来源

How to execute powershell commands from a batch file?

kapitanrum 的回答:https://stackoverflow.com/a/41986771

2. 思路

bat中注释使用rem::,而powershell单行注释用#,多行注释用<##>,这一差异可以轻松将ps1脚本转为bat后缀的脚本,而不需要做大量的改动。

要想在bat脚本中运行powershell命令,需要使用powershell.exe-Command参数。幸运的是,ps1中你可以使用Invoke-Command(别名icm)来运行scriptblock,所以我们只需要将脚本文本通过[scriptblock]::Create()做一个简单的转换就好了。

3. 代码

如果脚本编码不同,设置Get-Content读取时的编码,或者用[IO.File]类指定编码格式读取脚本.

<# :
@powershell "icm ([scriptblock]::Create((gc '%~f0' -Raw -Encoding UTF8)))"
exit
#>

Write-Host "Hello World" -fore Red
pause
# powershell script
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值