首页 > 解决方案 > 在 Powershell 中使用文字字符 <>

问题描述

我有下面的命令,我一直在尝试在远程服务器上使用调用命令运行该命令。我不断收到错误“<<此时是意外的。” 或“系统找不到指定的文件。” 我猜这个问题与密码周围的内引号和 <> 字符有关。我尝试在单引号和 <> 之前放置一个 ` 作为转义字符,但没有成功。使用单引号和文字 <> 字符的正确语法是什么?

Regular Command which runs fine - \bin\svc.exe -service='install,scv1,UserName <Pwd>,,,M'

PowerShell命令:

 Invoke-Command -ComputerName $SourceSrv -ScriptBlock { cmd.exe /c "$Using:SourcePath\Bin\svc.exe -service='install,svc1, $Using:SvcUser <$Using:SvcPwd>,,,M' " }

标签: powershell

解决方案


其中一个解析器正在删除您的引号并尝试解释<>文件重定向的命令字符。您无需调用cmd.exe即可调用可执行文件,您可以从 powershell 本地执行此操作(使用调用运算符&):

Invoke-Command -ComputerName $SourceSrv -ScriptBlock {
    & "$using:SourcePath\Bin\svc.exe" "-service='install,svc1, $using:SvcUser <$using:SvcPwd>,,,M'"
}

推荐阅读