Powershell ps1 file “is not recognized as a cmdlet, function, operable program, or script file.”


I made a Powershell function just now and saved it to a ps1 file.
However, when I try to execute it from within powershell, it won't run.

I've allready changed to the settings for running unsigned code by entering this command:

set-executionpolicy remotesigned

The function is this:

Function listAllPaths([string]$fromFolder, [string]$filter, [string]$printfile){
Get-ChildItem -Path $fromFolder -Include $filter -Recurse -Force -Name > $printfile

What it does is create a textfile in which all the path's to a certain file are listed.
I've put it directly under c:\ and named the file listAllPaths, same as the function.

When I enter the following command inside Powershell:

PS> listAllPaths.ps1 c:\ *.pdf testingPDF.txt

I get an error saying:

The term 'listAllPaths.ps1' is not
recognized as a cmdlet, function,
operable program, or script file.
Verify the term and try again.

I've tried several things and I honestly don't know how to get this to work?
What I expect is for a file to be created on the given path, c:\ in this example. That file having the name testingPDF.txt and the contents being the generated this.

Can someone tell me what I'm forgetting here.

And no, Google doesn't answer everything. Tried that one allready. I wouldn't come and ask it here if I hadn't allready tried the online search-engines.

Best Solution

This is a typical error across many platforms where your environment path does not include your current directory. so when you execute your script (or command or program etc), your runtime environment looks everywhere except your current/working directory.


PS> .\listAllPaths.ps1 c:\ *.pdf testingPDF.txt

EDIT: After reading your comments, I'm going to suggest you try this. I haven't actually verified the logic of your PS script. I'm merely trying to get your script to execute first.

Try editing your script as below, and execute as above.

Function listAllPaths([string]$fromFolder, [string]$filter, [string]$printfile){
Get-ChildItem -Path $fromFolder -Include $filter -Recurse -Force -Name > $printfile