質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

3回答

7781閲覧

PowerShellスクリプトが改行されず1行として認識されてしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2019/02/08 02:41

編集2019/02/08 08:07

初心者の質問で申し訳ございません。

PowerShellでスクリプトを書いているのですが、
実行すると長い一行として認識されてしまいます。
一行ずつ実行させたいです。

script.ps1

PowerShell

1$date = Get-Date -Format "yyyyMMdd" 2$data = "filepath.csv" 3$dir = "dirpath"

実行結果

PowerShell

1PS C:Users\User>$date = Get-Date -Format "yyyyMMdd" 2>>$data = "filepath.csv" 3>>$dir = "dirpath"

改行コードが入っていないのでしょうか?
UTF-8 BOMで保存しております。
エディタはVSCodeを利用しております。

よろしくお願い致します。

補足
PowerShellから直接実行した場合

PowerShell

1PS C:\Users\User>C:\Users\User\script\sctipt.ps1

結果

PS C:\Users\User>C:\Users\User\script\sctipt.ps1 PS C:\Users\User> PS C:\Users\User>

OS:Windows10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

全部コピーして一度に貼り付けてるんじゃないですか?

投稿2019/02/08 03:31

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/08 08:02

ご回答いただきありがとうございます。 PowerShellで.ps1を直接実行しても同じでした。
Zuishin

2019/02/08 08:04

スクリプトというのはそういうものです。逐次実行したい場合は ISE で開いて F10 を押してください。
Zuishin

2019/02/08 08:10 編集

あと複数行貼り付けても一つのヒストリーに入るのは PSReadLine の仕様です。これを停止するかカスタマイズすれば行数分だけプロンプトが表示されます。 その方法は私も即座には答えられませんが、x86 版では無効になっていますから、そちらが好みならそちらを使ってください。
Zuishin

2019/02/08 08:49 編集

実際に確かめてみると、Windows 10 の現行バージョンでは x86 版でも PSReadLine が有効になっていましたので、上記は間違いです。 Remove-Module PSReadLine と打ち込んで実行すると無効になり、複数行の貼り付けが複数のプロンプトで実行されますから、希望の動作かどうか一度確かめてください。 Remove-Module してもモジュールがアンインストールされるわけではなく、PowerShell を再起動するとまた有効になるので、ずっと無効にするには $PROFILE を編集して Remove-Module PSReadLine を追加してください。
Zuishin

2019/02/09 02:04

もし、スクリプト内で $dir に入れたものがスクリプト終了後に使えないという意味なのであれば、$dir の代わりに $global:dir を使ってください。 単に $dir だと、スクリプト内でしか使えません。 これは様々なスクリプトが勝手に変数を作っても競合しないようにするための仕様です。
guest

0

スクリプトファイル名を入力して実行するのでなく、Powershellプロンプトにコピペで貼り付けてしまっている。かつ、"だと思っている物が実は"ではない。

投稿2019/02/08 03:53

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/08 08:03

PowerShellから.ps1ファイルを直接実行しております。 ダブルクォーテーションはコピーしなおしたりしましたが直りません。。
otn

2019/02/08 08:11

補足の、スクリプトファイル名を入力した場合は、エラーが出ていないので、それで正常ですよね。
guest

0

OSはwindowsでしょうか?
もしそうなら一度Powershell_ise.exe使って保存してみて
見比べるのはどうでしょうか?
確か 文字コードはShift_jisになってしまいますが...

それともステートメント毎に処理を止めたいということでしょうか?

投稿2019/02/08 03:32

編集2019/02/08 03:36
kamikazelight

総合スコア305

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/08 08:02

ご回答いただきありがとうございます。 ISEで見比べましたが同じでした。 処理を止めたいわけではございません。
kamikazelight

2019/02/08 08:15 編集

そうなると Zuishin 様 の回答と同じです。 ISE で F8 や F11 等でも良いです。 挙動がそれぞれ違うので状況にあったものを使ってください。
kamikazelight

2019/02/08 08:19 編集

もちろん .ps1 をpowershellで開いて使ってますよね? ISEの画面に.ps1に書かれているコードが表示されている状態です 言い換えると ISEから.ps1 のパスを指定して実行では ダメです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問