I have been working on a simple little script to copy a file and then launch a program. I am sure that there are a lot of ways to do it, but I decided to use PowerShell, and this is what I came up with:
$CheckForFile = "H:\custom.ini"
$FileToCopy = "c:\IT\custom.ini"
$CopyFileTo = "H:\"
$PathTest = Test-Path $CheckForFile
If ($PathTest -eq "false")
Copy-Item $FileToCopy $CopyFileTo
#uses the Invoke-Item command to launch the application
Invoke-Item "C:\Program Files\executable to launch.exe"
This is for use in a Citrix/Terminal Server environment, so I want to be able to call this script like this: PowerShell copythenlaunch.ps1
When I tested that, I got this:
The term ‘copythenlaunch.ps1’ is not recognized as a cmdlet, function, operable
program, or script file. Verify the term and try again.
At line:1 char:18
+ copythenlaunch.ps1 <<<<
I kept thinking there was some problem with the install of PowerShell (I am running this particular script on a Windows 2003 Server) or that I had some illegal character in the name (it had a number in it originally) or some other simple problem. Finally I did a search and came across this little bit of conversation:
I just started with PowerShell.
Wanted to run some test scripts from you download.
When I tpye in Beep.ps1 I get "The term ‘Beep.1’ is not recognized….."
What Am I doing wrong?
Friday, December 29, 2006 3:17 PM by MikeL
# re: Power and Pith
> When I tpye in Beep.ps1 I get "The term ‘Beep.1’ is not recognized….."
> What Am I doing wrong?
You are relying upon a traditional bad shell behaviour that has been a security nightmere for decades.
In PowerShell, you have to be explicit if you want to run a command in the current directory. Type ".\beep.ps1"
Jeffrey Snover [MSFT]
Windows PowerShell/MMC Architect
Visit the Windows PowerShell Team blog at: http://blogs.msdn.com/PowerShell
Visit the Windows PowerShell ScriptCenter at: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx
Friday, December 29, 2006 5:19 PM by PowerShellTeam
# re: Power and Pith
Thank You for supplying the ".\*" information. I have been racking my brain for almost two days wondering what I was doing wrong. And to think it was as simple as using the PROPER .\yourscripthere.ps1 format.
Thank you very very much
Ditto on the thanks…