How do I run a PowerShell script?
powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'
(with or without --noexit
)which returns exactly nothing, except that the file name is output.
No error, no message, nothing. Oh, when I add -noexit
, the same thing happens, but I remain within PowerShell and have to exit manually.
The .ps1 file is supposed to run a program and return the error level dependent on that program's output. But I'm quite sure I'm not even getting there yet.
What am I doing wrong?
This question is related to
windows
powershell
scripting
An easy way is to use PowerShell ISE, open script, run and invoke your script, function...
Pretty easy. Right click the .ps1 file in Windows and in the shell menu click on Run with PowerShell.
If you are on PowerShell 2.0, use PowerShell.exe's -File
parameter to invoke a script from another environment, like cmd.exe. For example:
Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
In case you want to run a PowerShell script with Windows Task Scheduler, please follow the steps below:
Create a task
Set Program/Script
to Powershell.exe
Set Arguments
to -File "C:\xxx.ps1"
It's from another answer, How do I execute a PowerShell script automatically using Windows task scheduler?.
Type:
powershell -executionpolicy bypass -File .\Test.ps1
NOTE: Here Test.ps1
is the PowerShell script.
If your script is named with the .ps1
extension and you're in a PowerShell window, you just run ./myscript.ps1
(assuming the file is in your working directory).
This is true for me anyway on Windows 10 with PowerShell version 5.1 anyway, and I don't think I've done anything to make it possible.
Using cmd (BAT) file:
@echo off
color 1F
echo.
C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"
:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL
If you need run as administrator:
I have a very simple answer which works:
set-executionpolicy unrestricted
I found this solution following the link that was given as part of error message: About Execution Policies
I've had the same problem, and I tried and tried... Finally I used:
powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"
And put this line in a batch-file, and this works.
Use the -File
parameter in front of the filename. The quotes make PowerShell think it is a string of commands.
You can run from cmd like this:
type "script_path" | powershell.exe -c -
If you want to run a script without modifying the default script execution policy, you can use the bypass switch when launching Windows PowerShell.
powershell [-noexit] -executionpolicy bypass -File <Filename>
If you only have PowerShell 1.0, this seems to do the trick well enough:
powershell -command - < c:\mypath\myscript.ps1
It pipes the script file to the PowerShell command line.
Give the path of the script, that is, path setting by cmd:
$> . c:\program file\prog.ps1
Run the entry point function of PowerShell:
For example, $> add or entry_func or main
Source: Stackoverflow.com