2015-12-04 62 views
1

我有一個PowerShell腳本來通過7zip創建一個自解壓文件。但它收到此錯誤:如何在Powershell和7zip中正確設置路徑?

cannot find specified SFX module

PowerShell的代碼是:

set-alias sz "$env:ProgramFiles\7-Zip\7z.exe 
sz a -t7z -sfx -ppassword $fullpath $filetostore 

兩個變量都是有效的。我試過-sfx-sfx7z.sfx,同樣的錯誤。 7z.sfx文件的確在7zip的正確文件夾中。我還可以驗證別名是否有效,因爲在運行代碼時出現7zip版權(所以7zip命令行正在啓動)。該命令在Powershell之外工作。

我也試過Set-Location進入7zip文件夾,但同樣的錯誤。我錯過了什麼?

+0

這是所有的命令?你的'7z.exe'命令是否在'Set-Alias'之外工作?我會用雙引號括住所有變量來防止空格:'set-alias sz「」「$ env:ProgramFiles \ 7-Zip \ 7z.exe」「sz a -t7z -sfx -ppassword」「$ fullpath」 「」「$ filetostore」「」' – BACON

+0

@BACON這是兩行,雙引號似乎破壞了腳本。 'Set-Location:找不到接受參數C的位置參數:\ Program Files \ 7-zip \ – Zeno

+1

請提供您正在運行的確切代碼以及它生成的確切輸出。 – n0rd

回答

0

看來你應該添加7-ZIP文件夾到您PATH環境變量,使事情變得更加容易:

#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;" 

然後,你可以沒有關於SFX模塊故障運行7z -sfx

相關問題