Why cannot I run 7z in the following PowerShell script?
Set-Location "C:\Program Files\7-Zip"
Invoke-Expression "dir"
Invoke-Expression "7z"
Invoke-Expression "7z.exe"
Result:
Directory: C:\Program Files\7-Zip
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 11/18/2010 9:08 PM 91020 7-zip.chm
-a--- 11/18/2010 9:08 PM 86016 7-zip.dll
-a--- 11/18/2010 9:24 PM 1422336 7z.dll
-a--- 11/18/2010 9:08 PM 284160 7z.exe
-a--- 11/18/2010 9:27 PM 162816 7z.sfx
-a--- 11/18/2010 9:27 PM 152064 7zCon.sfx
-a--- 11/18/2010 9:10 PM 740352 7zFM.exe
-a--- 11/18/2010 9:11 PM 387072 7zG.exe
-a--- 9/10/2010 11:41 AM 333 descript.ion
-a--- 11/18/2010 9:11 PM 32400 History.txt
-a--- 1/2/2010 3:18 PM 1927 License.txt
-a--- 11/18/2010 9:12 PM 1565 readme.txt
7z : The term '7z' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:1
+ 7z
+ ~~
+ CategoryInfo : ObjectNotFound: (7z:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
7z.exe : The term '7z.exe' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
At line:1 char:1
+ 7z.exe
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (7z.exe:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
By default, Powershell does look for executables on PATH, but not in current directory (.\). You could:
Preppend ".\" to the name of executable when calling from current directory:
Invoke-Expression ".\7z"
Call it by full path (using mentioned & syntax):
& "c:\Program Files\7-zip\7z"
add executable's directory to PATH ($env:Path in Powershell):
$env:Path += "c:\Program Files\7-zip"
Invoke-Expression "7z"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With