使用 -p 在 Powershell 中更正别名命令的语法?
Correct syntax for alias command in Powershell with -p?
我同时使用 Powershell 和 7zip:
$passwd = "password123"
set-alias sz "$env:ProgramFiles-Zipz.exe"
sz a -t7z -sfx'7z.sfx' -ppasswordstring $execname $ssftxtname
结果的密码为 passwordstring
。如何替换最后一行以便它使用 $passwd
变量?这个:
sz a -t7z -sfx'7z.sfx' -p$passwd $execname $ssftxtname
似乎没有给出正确的结果,因为密码输入失败。我认为这是因为有特定的语法要使用?
您应该将 7-zip 文件夹添加到您的 PATH
环境变量中以简化操作:
#find the 7-zip folder path
zPath = (Get-ChildItem "C:\Program Files","C:\Program Files (x86)" -Include "7-zip" -Recurse -ErrorAction SilentlyContinue).FullName
#add it to PATH environment variable
$env:Path += ";zPath;"
然后您可以 运行 您的 7z
直接命令。
当你使用
sz a -t7z -sfx'7z.sfx' -p$passwd $execname $ssftxtname
您实际上是将密码设置为由以下字符组成的 7 个字符的字符串:$, p,a,s,s,w,d
.
PowerShell 正在将其启发式方法应用于 "help" 你,认为字符串中间的美元符号可能 不是 对变量的引用。你可以简单地通过引用整个论点来说服它:
sz a -t7z -sfx'7z.sfx' "-p$passwd" $execname $ssftxtname
这样,它会将密码设置为 $passwd
变量的内容。
请注意,如果您的启动配置文件中有@KeithHill 方便的 PSReadLine 模块,您实际上会在键入时看到您有字符串还是变量。请注意以下三种情况。第一个是您尝试过的,但字符是按字面意思提取的。在第二个或第三个变体中添加引号表明 $passwd
是一个活动变量。
我同时使用 Powershell 和 7zip:
$passwd = "password123"
set-alias sz "$env:ProgramFiles-Zipz.exe"
sz a -t7z -sfx'7z.sfx' -ppasswordstring $execname $ssftxtname
结果的密码为 passwordstring
。如何替换最后一行以便它使用 $passwd
变量?这个:
sz a -t7z -sfx'7z.sfx' -p$passwd $execname $ssftxtname
似乎没有给出正确的结果,因为密码输入失败。我认为这是因为有特定的语法要使用?
您应该将 7-zip 文件夹添加到您的 PATH
环境变量中以简化操作:
#find the 7-zip folder path
zPath = (Get-ChildItem "C:\Program Files","C:\Program Files (x86)" -Include "7-zip" -Recurse -ErrorAction SilentlyContinue).FullName
#add it to PATH environment variable
$env:Path += ";zPath;"
然后您可以 运行 您的 7z
直接命令。
当你使用
sz a -t7z -sfx'7z.sfx' -p$passwd $execname $ssftxtname
您实际上是将密码设置为由以下字符组成的 7 个字符的字符串:$, p,a,s,s,w,d
.
PowerShell 正在将其启发式方法应用于 "help" 你,认为字符串中间的美元符号可能 不是 对变量的引用。你可以简单地通过引用整个论点来说服它:
sz a -t7z -sfx'7z.sfx' "-p$passwd" $execname $ssftxtname
这样,它会将密码设置为 $passwd
变量的内容。
请注意,如果您的启动配置文件中有@KeithHill 方便的 PSReadLine 模块,您实际上会在键入时看到您有字符串还是变量。请注意以下三种情况。第一个是您尝试过的,但字符是按字面意思提取的。在第二个或第三个变体中添加引号表明 $passwd
是一个活动变量。