2015-12-08 19 views
5

私は最初のスクリプトを実行しようとしています。単にメモ帳にアップ型付けと題し.ps1というファイルとして保存したスクリプトをプルアップするためのPowerShellを取得するには、「テスト」(また、スクリプトを試してみましたが、名前はそれとは何の関係もありません知っている):PowerShellでコマンドレット、関数などとしてスクリプト名を認識しません。単純なスクリプトでも位置のパーセンテージを見つけることはできません。

Write-Host "Hello, World!" 

を私は

& "C:\Scripts\test.ps1" 

と同様に

./test.ps1 

を入力していますそしてこれだけで会っています:

./test.ps1.txt : The term './test.ps1.txt' is not recognized as the name of a 
cmdlet, function, script file, or operable program. Check the spelling of the 
name, or if a path was included, verify that the path is correct and try again. 
At line:1 char:1 
+ ./test.ps1.txt 
+ ~~~~~~~~~~~~~~ 
    + CategoryInfo: ObjectNotFound: (./test.ps1.txt:String) [], CommandNotFoundException

は、私がRemoteSignedUnrestrictedの間で切り替えている

PS C:\Scripts> Rename-Item test.ps1.txt test.ps1 

とPowerShell内のファイルの名前を変更しようとしたことがあり、私はexecutionpolicy bypassを含むコードを試してみました(私は謝罪、私は1つを書き留めることなく、私のウィンドウを閉じました)。私が知っている限り、すべてが最新で、Windows 10、Windows PowerShell、および通常のWindowsメモ帳を実行しています。

+0

あなたが投稿したエラーメッセージは、実行していると主張しているコマンドと一致しません( '。/ test.ps1.txt'対'。/ test.ps1')。また、.txtファイルはメモ帳に関連付けられている必要があります。 '。/ test.ps1'で実行しようとすると、スクリプトが現在のディレクトリに存在することを確認してください。 –

答えて

3

まず、Windows PowerShell ISEをスクリプトの作成に使用することを強くお勧めします。それは無料で、かなり良いコンソール/エディタの経験を提供します。それは無料であると言われています(そこには良いものがあると言われていますが、これはいつもうまくいっています)。私はVisual Studioを他のものに使用していますが、PowerShell ISEはかなり機能が豊富です。

次に、始めようとしているのであれば、Don Joneの「PowerShell 3.0を月単位で学ぶ」の本をチェックしてください。最新の情報には2つのバージョンがありますが、すべての情報は依然として関連しています。一度書籍を完成すれば、あなた自身で簡単に他のもののヘルプを探すことができます。それはすべての基本をカバーし、言語を学ぶための非常に良い第一歩です。

質問に答えてください:PowerShellスクリプトのファイル拡張子は.ps1です。その他の拡張機能は、Windows PowerShellが利用するモジュール(.psm1)やその他のヘルパーコンテンツに一般的に使用されます。ほとんどの場合、あなたは.ps1に固執します。そして、あなたが他の拡張機能を必要とするところに到達すると、必要なものを特定するのに問題はないと思われます。

一般に、PowerShellスクリプトを呼び出す方法は2つあります。最初のコマンドプロンプトは通常のコマンドプロンプトから、スクリプトを実行するようにPowerShellに指示します。私はあなたが使用してお勧めしますいくつかの追加のパラメータがあります

powershell.exe -File MyScript.ps1 

が、使い方はあなたの条件に依存しています。これは、以下の通りです。

powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File MyScript.ps1 

このいずれかのPowerShellを使用すると、読み取りのようなことを行い、あなたのプロファイルスクリプトに原料の束を持っている場合は、あなたが理想的である、設定したプロファイルを無視するPowerShellプロセスを教えてくれます:ここで私は通常、鉱山にタグを付けるものですコンソール入力(あなたの現在の状況では、私はあなたがいないと仮定するつもりですが、将来はそうかもしれません)。もう一つは、ExecutionPolicyの1つです:RemoteSignedは、基本的にInterWebからダウンロードされたものを無視するようにPowerShellに指示しますが、ネットワーク内で発生したものはすべて無料で実行できるようにします。おそらくベストプラクティスではありませんが、スクリプトリポジトリが安全であると信じることができれば、これは厳しいポリシーではありません。そうでない場合は、PowerShellのプロンプトで "Get-Help about_Execution_Policies"と入力するか、TechNetのページを参照して実行ポリシーを読み上げることができます(同じでない場合は内容が似ているはずです) 。

2番目の方法は、Windows PowerShellスクリプトの内部からです。実際にははるかに簡単です。スクリプトを実行できるように実行ポリシーを設定する必要がありますが、その後はスムーズなセイリングを行う必要があります。

. .\MyScript.ps1 

これは、スクリプトのドットソーシングと呼ばれます。 Windows PowerShellの中でこれを実行する利点は、関数の完全なスクリプトのようなものがあれば、現在のスコープ(Get-Help about_Scopes)に追加され、現在のセッションで利用できることを意味します。良い例は、メインスクリプトと一緒に配布されているスクリプトに "Test-DomainConnection"という関数を定義することです。メインスクリプトと一緒に配布されているスクリプトをドットソースします(これは通常、 "標準"メインスクリプトのPowerShell関数)を使用して、メインスクリプトの関数を使用します。このアプローチには賛否両論がありますが、一般的には推奨されています(手動で管理する必要性を排除するコミュニティ拡張があるかもしれません)。

詳細については、Get_ Help about_ScriptsをWindows PowerShellから呼び出すことができます。 Windows 10を使用しているため、ローカルのシステムでヘルプコンテンツを利用できるようになる前に、管理用のPowerShellウィンドウからUpdate-Helpを実行する必要があります。

質問がありましたら、私にメッセージをお寄せください:)私はしばらくPowerShellをやっており、助けてくれるかもしれません。

+0

うわー!まずは本当にありがとう! ISEには明らかに多くの機能があり、これまで探求してきたことが(私ができる限り)探求していきます。 Don Joneの本をチェックしています。私が得ることができるすべての手助けをします! 今、あなたが推奨したことを試しましたが、上記の同じエラーが発生しました。 "C:\ Users \ blake_000 \ Desktop \ Scripts \ test.ps1" 私がやっているはずの設定がありますか? 、私はこれをいつもやっていたのだろうか? – GuyWantingBoat

+0

こんにちは@GuyWantingBoat、申し訳ありませんが、私は数日でこのサイトに戻ってきていないし、あなたが昨日投稿したコメントを見ませんでした。前述のドット・ソーシングの技法の必要条件は、完全修飾パスまたはスクリプトへの相対パスのいずれかを指定することです。そのため、デスクトップにアイテムがある場合は、次のコマンドを実行して同じ結果を得ることができます。 セット位置 - パス "C:\ Users \ blake_000 \ Desktop" 。 。\ test.ps1 これを次のように簡略化することもできます。 cd $ env:userprofile \ Desktop – PSGuy

関連する問題