Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a Windows powershell script that works fine in the interactive editor. The script is a simple one line sql cmd:

sqlcmd -S servername -d dbname -E -W -w 999 -s "," -Q "SELECT select col1,col2,'','','','','','','','','','','','','','','','','','','','','','','','','' From Table" -o "C:\sqlcmd.csv"

When I enter that at the powershell command prompt it works fine. I save it in a ps1 file and try to run it from the cmd prompt by typing .\filename.ps1, it opens it in Notepad, and does not execute it.

I then try to run it as a command like this:

powershell sqlcmd -S servername -d dbname -E -W -w 999 -s "," -Q "SELECT select col1,col2,'','','','','','','','','','','','','','','','','','','','','','','','','' From Table" -o "C:\sqlcmd.csv"

And that says "-s missing parameter...".

Any suggestions on getting this to run right? I read something somewhere about Windows execution policy and was wondering if it was something like that.

Operating System is Windows XP, SP2.

share|improve this question
add comment

3 Answers

up vote 1 down vote accepted

You can run the Powershell script from the command prompt like this:

powershell -command "& .\filename.ps1"

You may need to change your execution policy to run Powershell scripts.

powershell -command "Set-ExecutionPolicy Unrestricted"
share|improve this answer
add comment

I would not use PowerShell for this. It serves no purpose doing so other than forcing PowerShell to load, parse the line for variables, and then call the external program. Save it to a .cmd file and use it as a batch program because that's what it really is.

share|improve this answer
add comment

I realized that this question is already answered, but if you really want to run .\filename.ps1, there's a way to do it.

Part 1: Get PowerShell Location

  1. Open Start > All Programs > Accessories > Windows Powershell.
  2. Right click Windows Powershell shortcut.
  3. Left click "Open file location".
  4. Highlight the location bar on the top.
  5. Right click the location bar.
  6. Left click "Copy".

Part 2: Set .ps1 File Association

  1. Go to the location of your .ps1 file.
  2. Right click the .ps1 file.
  3. Left click "Properties".
  4. Find the part where it said "Opens with:". Left click the "Change..." button on its right side.
  5. Left click the "Browse..." button on the bottom right.
  6. Highlight the location bar on the top.
  7. Right click the location bar.
  8. Left click "Paste".
  9. Left click the button with an arrow pointing right on the right side of the location bar.
  10. Left click "powershell.exe".
  11. Left click "Open"
  12. Go back to the "Open with" window.
  13. Left click "OK" on the bottom right.
  14. Go back to the properties window.
  15. Left click "OK" on the bottom right.

Part 3: Run .\filename.ps1 From Command Prompt

  1. Run this from command prompt.

.\filename.ps1

-Y.P.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.