如何在 .bat 中 运行 多个 powershell 命令

how to run multiple powershell command inside .bat

我制作了一个用于将计算机加入域的批处理文件。

Powershell -command " Add-Computer -DomainName blabla.com -Credential blabla\bla "

有效,但我还想添加 -Description 和输入。

Powershell -command "
$date = Get-Date
$cred= read-host -prompt 'IT username' 
Add-Computer -DomainName blabla.com  -Description "joined domain by $cred date $date" -Credential blabla$cred "

没用。

Powershell -command " $date = Get-Date "
Powershell -command " $cred= read-host -prompt 'IT username' "
Powershell -command " Add-Computer -DomainName blabla.com  -Description "joined domain by $cred date $date" -Credential blabla$cred "

也没用。

拜托,我需要帮助

这需要在 powershell.exe 的单次调用中完成。使用分号终止每个 PowerShell 语句,并使用 cmd 行继续符,CARET ^.

powershell -command ^
$date = Get-Date; ^
$cred= read-host -prompt 'IT username'; ^
Add-Computer -DomainName blabla.com  -Description "joined domain by $cred date $date" -Credential blabla$cred;

这需要一次调用的原因是 PowerShell 的单独调用不知道彼此做了什么。

这没有经过测试。可能存在一些 cmd 语法问题,通常与引用有关。让 .bat 文件脚本调用 PowerShell 脚本会更容易。

powershell -NoLogo -NoProfile -File "%~dpDo-JoinDomain.ps1"

请注意,Do 不是已批准的 PowerShell 动词。使用命令Get-Verb寻找您认为合适的。

@echo off
Powershell -command " $date = Get-Date; $cred= read-host -prompt 'IT username'; add-Computer -DomainName tpicomp.com -Description "joined domain by $cred date $date" -Credential tpicomp$cred "

感谢@lit 和@Compo 这是最终结果。