Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PowerShell does not recognise external executables

Tags:

powershell

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
like image 780
Damn Vegetables Avatar asked Mar 06 '26 02:03

Damn Vegetables


1 Answers

By default, Powershell does look for executables on PATH, but not in current directory (.\). You could:

  1. Preppend ".\" to the name of executable when calling from current directory:

    Invoke-Expression ".\7z"
    
  2. Call it by full path (using mentioned & syntax):

    & "c:\Program Files\7-zip\7z"
    
  3. add executable's directory to PATH ($env:Path in Powershell):

    $env:Path += "c:\Program Files\7-zip"
    Invoke-Expression "7z"
    
like image 152
qbik Avatar answered Mar 08 '26 07:03

qbik