Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell中带-p的alias命令的语法是否正确?_Powershell_7zip - Fatal编程技术网

Powershell中带-p的alias命令的语法是否正确?

Powershell中带-p的alias命令的语法是否正确?,powershell,7zip,Powershell,7zip,我正在同时使用Powershell和7zip: $passwd = "password123" set-alias sz "$env:ProgramFiles\7-Zip\7z.exe" sz a -t7z -sfx'7z.sfx' -ppasswordstring $execname $ssftxtname 其中,结果的密码为passwordstring。如何替换最后一行,使其使用$passwd变量?这: sz a -t7z -sfx'7z.sfx' -p$passwd $execname

我正在同时使用Powershell和7zip:

$passwd = "password123"
set-alias sz "$env:ProgramFiles\7-Zip\7z.exe" 
sz a -t7z -sfx'7z.sfx' -ppasswordstring $execname $ssftxtname
其中,结果的密码为
passwordstring
。如何替换最后一行,使其使用
$passwd
变量?这:

sz a -t7z -sfx'7z.sfx' -p$passwd $execname $ssftxtname

似乎没有给出正确的结果,因为密码输入失败。我认为这是因为要使用特定的语法?

您应该将7-zip文件夹添加到您的
路径
环境变量中,以简化操作:

#find the 7-zip folder path
$7zPath = (Get-ChildItem "C:\Program Files","C:\Program Files (x86)" -Include "7-zip" -Recurse -ErrorAction SilentlyContinue).FullName

#add it to PATH environment variable
$env:Path += ";$7zPath;"
然后您可以直接运行
7z
命令。

当您使用

sz a -t7z -sfx'7z.sfx' -p$passwd $execname $ssftxtname
实际上,您正在将密码设置为由以下字符组成的7个字符的字符串:
$,p,a,s,s,w,d

PosiS壳应用启发式来帮助“你”,认为一个字符串中间的一个美元符号可能不是对变量的引用。你可以通过引用整个论点来说服它:

sz a -t7z -sfx'7z.sfx' "-p$passwd" $execname $ssftxtname
这样,它会将密码设置为
$passwd
变量的内容

请注意,如果您的启动配置文件中有@KeithHill的handy模块,那么您将在键入时看到您是有字符串还是变量。请注意以下三种情况。第一个是你尝试过的,但是角色是照字面理解的。在第二个或第三个变量中添加引号表明
$passwd
是一个活动变量


是否
$passwd
包含空格、标点或特殊字符?@briantist没有空格。它有时可能包含数字或符号(如#)。我不完全确定问题是什么,所以我现在不想写一个完整的答案,但我有一些想法。请尝试使用引号
“-p$passwd”
,或者尝试使用其他方法启动7zip,如
启动进程
,您可以在其中显式传递参数。您好,1。将7-zip添加到
路径
通常更容易2。它不应该是带有空格的
sz a-t7z-sfx'7z.sfx'-p$passwd$execname$ssftxtname
?无论如何,我很确定
PATH
可以帮助处理参数。@sodawillow根据文档,没有空格