提问人:Rakha 提问时间:12/15/2017 最后编辑:Peter MortensenRakha 更新时间:9/3/2023 访问量:10393
PowerShell 在命令中使用引号中的变量
PowerShell using a variable in quotes within a command
问:
我有这个有效的(三重双引号不是一个错误;它的工作原理完全是这样的)——专注于部分:Start-Process
Start-Process powershell -Credential $cred -WorkingDirectory "$lettre_disque" -ArgumentList '-noprofile -command &{Start-Process """D:\WD Drive Unlock.exe""" -verb runas}'
现在我只是尝试用一个名为包含完全相同文本 () 的变量替换字符串。D:\WD Drive Unlock.exe
$chemin_fichier
D:\WD Drive Unlock.exe
我在努力:
"""$chemin_fichier"""
""$chemin_fichier""
"$chemin_fichier"
""""$chemin_fichier""""
没有任何效果...
如何显示该变量?这个命令非常令人困惑。什么是正确的组合?我必须逃避什么还是?
答:
1赞
Maximilian Burszley
12/15/2017
#1
我会使用溅射将您的命令分解成碎片:
$chemin_fichier = 'D:\WD Drive Unlock.exe'
$ArgList = @{
FilePath = 'powershell'
Credential = $cred
WorkingDirectory = $lettre_disque
ArgumentList = @(
'-NoProfile'
'-Command'
"`"Start-Process -FilePath '$chemin_fichier' -Verb runas`""
)
}
Start-Process @ArgList
没有必要将命令包装在脚本块中。
评论
0赞
Rakha
12/15/2017
非常感谢你,是的,使用单行命令是一场噩梦。不过,这种语法是硬核的,哈哈。总有一天我会习惯的,非常感谢。
1赞
Maximilian Burszley
12/15/2017
@Rakha 是的,一开始处理参数是很粗糙的。Start-Process
1赞
yu yang Jian
10/7/2019
#2
我使用一个带有类似参数的命令,该命令将替换为空字符串。逃到 或 很关键,你应该试一试。测试和修改以确保脚本正常工作:store:Schema="abcd"
"
""
""""
powershell -Command "$varStr='store:Schema=""abcd""""'; $filePath='%~dp0SomeFolder\SomeFile.txt'; (gc $filePath) -replace $varStr, '' | Out-File $filePath"
评论