Hello,
Working through Jerry Lee Ford Jr.'s Powershell 2.0 for the Absolute Beginner book. There's a lot of typographical errors in the code of the book that I've been able to work through and correct (great practice), but there's one I simply can't seem to figure out. Downloaded his stock code from the companion website, and his code is throwing the exact same error. Code is as follows:
# *************************************************************************
#
# Script Name: GameConsole.ps1 (The PowerShell Game Console)
# Version: 1.0
# Author: Jerry Lee Ford, Jr.
# Date: January 1, 2007
#
# Description: This PowerShell script provides a listing of PowerShell
# game scripts and allows the player to play any game by
# entering its menu number.
#
# *************************************************************************
# Initialization Section
$menuList = @() #Stores an array containing information about script games
$playAgain = "True" #Controls the execution of a loop that controls game
#execution
# Functions and Filters Section
#This function gets the player's permission to begin the game
function Get-GameListing {
$gameList = @() #Stores and array containing a list of PowerShell scripts
$i = 0 #Used to set the index value of the array when adding elements to it
Clear-Host #Clear the screen
Write-Host #Display a game console header
Write-Host " --------------------------------------------------------------"
Write-Host " Windows PowerShell Game Console" -foregroundColor darkred
Write-Host " --------------------------------------------------------------"
$location = Set-Location C:\ShellScripts\Games #Specify the location of the game scripts
#Load an array with a list of all the PowerShell scripts in the specified folder
$gameList = Get-ChildItem . *.ps1 # | ForEach-Object -process {$i++; $gameList[$i] = $_.Name }
$gameList #Return the contents of the array to the calling statement
}
#This function displays a menu listing of PowerShell games
function Write-MenuList {
param($list) #The list of games to be displayed is passed as an array
$Counter = 0 #Used to number each menu item
Write-Host ""
ForEach ($i in $list) { #Iterate for each script stored in the array
$counter++ #Increment the counter by 1
if ($counter -lt 10) { #Format the display of the first 9 scripts
Write-Host " $counter. $i" -foregroundColor blue
}
else { #Format the display of all remaining scripts
Write-Host " $counter. $i" -foregroundColor blue
}
}
Write-Host "`n --------------------------------------------------------------"
}
function End-ScriptExecution {
Clear-Host #Clear the screen
Write-Host "`n Thank you for using the Windows PowerShell Game Console"
Start-Sleep 3 #Pause the execution of the script for 3 seconds
Clear-Host #Clear the screen
}
# Main Processing Section
$response = 0 #Stores player input
#Continue playing new games until the player decides to close the game console
while ($playAgain -eq "True") {
#Call the function that generates an array containing a list of game scripts
$menuList = Get-GameListing
#Call function that converts the contents of the array into a list of menu items
Write-MenuList $menuList
#Prompt the player to pick a game to play
$response = Read-Host "`n Enter the menu number for a game or Q to quit"
#Prepare to close the game console when the user decides to quit
if ($response -eq "Q") {
$playAgain = "False" #Modify variable value in order to terminate the loop
continue #Repeat the loop
}
#Convert the player's input to a integer and then validate the player's input
if ([int]$response -lt 1) { #Anything below 1 is not a valid menu number
Clear-Host #Clear the screen
Write-Host "`n `a`aInvalid selection."
Read-Host #Pause the script until the player presses the Enter key
continue #Repeat the loop
}
if ([int]$response -gt $menuList.length) {
Clear-Host #Clear the screen
Write-Host "`n `a`aInvalid selection."
Read-Host #Pause the script until the player presses the Enter key
continue #Repeat the loop
}
Invoke-Expression $menuList[$response] #Executed the selected game script
Clear-Host #Clear the screen
}
End-ScriptExecution
The error being thrown is:
The term 'fortuneteller.ps1' is not recognized as the name of a cmdlet, functio n, script file, or operable program. Check the spelling of the name, or if a pa th was included, verify that the path is correct and try again. At line:1 char:18 + fortuneteller.ps1 <<<< + CategoryInfo : ObjectNotFound: (fortuneteller.ps1:String) [], C ommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
No matter what ps script menu item I choose, I'm getting the same error. Any help would be greatly appreciated!