Powershell5.1でのコマンド実行時にエラーが発生する理由

このQ&Aのポイント
  • Powershell5.1で特定のコマンドの実行時に文法エラーが発生する現象が報告されています。
  • 最新のPowerShellでもこのエラーが発生するため、文法自体が対応していない可能性があります。
  • Windows10でこのエラーが発生しており、Powershellのバージョンは5.1です。
回答を見る
  • ベストアンサー

PowerShell5.1

質問です、 Powershellでいくつかのコマンドで使う文法&&を使うとエラーになるのですが エラーになぜなるのか解らないです。 最新PowerShellなので文法自体が対応してないのかもしれません。 一応いいますOSはwindows10です PowerShellのバージョンは5.1です 例えば whoami /all && ipconfig /all && netstat -ano && net accounts && net localgroup administrators && net share このようなWindowsの列挙を試みるのですが、 このバージョンでは有効なステートメント区切りではありませんと出ます。 本もネットでも探したのですが、情報が見つからないのでよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kteds
  • ベストアンサー率42% (1872/4419)
回答No.2

No.1です。 論理演算子 && が使えない理由は解ったはずです。 「有効なステートメント区切りではありません」とのメッセージは、区切りの記述が正しくないからです。 ステートメント区切りは セミコロン ; です。 添付画像参照。

7b0m1z4c
質問者

お礼

回答ありがとうございます。 無事できました。 感謝です。

その他の回答 (1)

  • kteds
  • ベストアンサー率42% (1872/4419)
回答No.1

>エラーになぜなるのか解らないです。 PowerShellにはそのような論理演算子は無いからです。 -and をPowerShellでは使います。 &&は C/C++で使う論理演算子です。 >情報が見つからないのでよろしくお願いします。 PowerShell 論理演算 とか PowerShell logical operators などで、すぐにヒットするはずです。 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logical_operators?view=powershell-6

7b0m1z4c
質問者

お礼

回答ありがとうございます。 ですが、-andでやってもandでやってもANDでやっても 先ほど書いたwindowsの列挙が出来ません。 初心者ですがよろしくお願いします。

関連するQ&A

  • Windowsの列挙

    いつもPCの質問ばかりで申し訳ないんですが また質問しますが whoami /all && ifconfig /all && netstat -ano && net accounts && net localgroup administrators && net share これがコマンドで通らないのですが /usr/bin/whoami: extra operand ‘/all’ このようなエラーが返ってきます。 宜しくお願いします。

  • powershellのforeachの動作

    powershellにおける"foreach"の動作について2点質問です。 動作環境はWindows7 SP1。 powershellのバージョンは以下の通りです。 PS C:\> $PSVersionTable Name Value ---- ----- CLRVersion 2.0.50727.5472 BuildVersion 6.1.7601.17514 PSVersion 2.0 WSManStackVersion 2.0 PSCompatibleVersions {1.0, 2.0} SerializationVersion 1.1.0.1 PSRemotingProtocolVersion 2.1 PS C:\> 【サンプル1】 test1.ps1 -------------------- $WEEK = "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" foreach ($x in $WEEK) { if ( $x -notmatch '^T' ) { continue } $x } -------------------- 実行結果は Tuesday Thursday となります。 【サンプル2】 test.lst -------------------- Sunday Monday Tuesday Wednesday Thursday Friday Saturday -------------------- test2.ps1 -------------------- Get-Content ".\test.lst" | foreach { $x = $_ if ( $x -notmatch '^T' ) { continue } $x } -------------------- 実行すると、何も出力されていません。 "notmatch"を"match"に変えて実行してみると、 Sunday Monday と出力されます。 どうも"continue"でループを抜けてしまっている様です。 ■質問1 サンプル1とサンプル2、やっている内容は同じだと思っていたのですが、何故こういう違いが起こるのでしょうか? また、サンプル1の"foreach"を"ForEach-Object"に変えて実行すると、 「式またはステートメントのトークン 'in' を使用できません。」 とエラーになってしまいます。 aliasを切ってあるはずなのですが・・・ PS C:\> alias foreach CommandType Name Definition ----------- ---- ---------- Alias foreach ForEach-Object PS C:\> ■質問2 同じコマンドを実行しているはずなのに、こういう事が起こるのでしょうか? よろしくお願いします。

  • PS3を有線でネットに繋ぎ方

    PS3を有線でネットに繋ぎ方 似たような文をいくつか見かけるのですが、なぜかうまくいきません 現在は モデム兼ルーター → パソコン          ↓          PS3 となっており、VH-100VRにパソコンとPS3を繋いでいる状態です それと、原因なんですが、IPアドレスは取得できており、DNSエラー発生中です パソコンのDNSをPS3のDNSにしたのですが、うまくいってません わかる方がいれば、教えていただけると幸いです あと、DNSを変えた後にパソコンで ipconfig/all をしたら、全く変わってなかったのですが、これはいいんですか?? ルーターなどの設定は全くいじってません

  • vb.netで、ステートメントの終わりを指定してくださいとエラーが出ま

    vb.netで、ステートメントの終わりを指定してくださいとエラーが出ます。 出る部分は、以下のコードです Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Visible = True Then Me.TextBox9.AppendText("第1小計") + (textbox1.text) + ("円") こんな感じです。 したいことは、ボタン1をクリック時にテキストボックス1が、表示されていたら、テキストボックスに、第1小計とテキストボックス9の中身と円を入力するというかんじです。 ステートメントの終わりを指定してくださいというエラーが出て困っています。 どうすればいいでしょうか? あと、今、書いたコードと似ている動作ができたら何でもOKです。 VBは、バージョンが、2010です vb.net時代ですのデ・・・ よろしくおねがいします

  • 重複質問ですが、ド素人なもので、、、お願いします。困ってます。

    先日、譲り受けた自作PCを完成(?)させ、ネットやらをしていたんですが、 いきなりネットに繋がらなくなってしまい、 『接続が制限されているか、~』のようなぶんが!マークと共に表示されてしまっています。 また、修復をしようとすると、IPアドレス自動更新でエラーになるようです。 因みに、接続が出来ないのは私のPCのみです。 3台ありますが、すべて無線で繋いでいます。 同じ質問をされている方が多かったのですが、何分私はド素人なので、いまいちピンとこなかったんです。 大変恐縮ですが、どなたか私のような阿呆でもわかるような解決方法を教えていただけませんでしょうか。 因みに、ルータ類の再起動等もやってみましたし、ipconfig/all を見てみましたが、IPアドレスは169~でデフォルトゲートウェイは表示されていません。 何度も申し訳ありませんが、わかりやすめにお願い致します。

  • ネットの設定で ipconfig /release と renew ができません

    Windows98と2000のデュアルブートにして、通常は2000を使っています。 Windows2000のLANカードのドライバを更新して再起動したところ、ネットに接続できなくなってしまいました。 ルータを通しており、ipconfigで見るとWindows98では、IPアドレス192.168.2.101でネットに接続できています。Windows2000のシステムのハードウエアには!は付いておらず、IRQの競合もありませんが、IP アドレスが169.254.100.58、ゲートウエー空欄になっています。 再取得しようとすると、 E:\>ipconfig /release Windows 2000 IP Configuration All adapters bound to DHCP do not have DHCP addresses. The addresses were autom atically configured and can not be released. E:\>ipconfig /renew Windows 2000 IP Configuration The following error occurred when renewing adapter ローカル エリア接続: ソケット 以外のものに対して操作を実行しようとしました。 になってしまいます。 LANカードの抜き差しや、PCIスロットルの変更。ドライバを一旦削除したり、元に戻してみたりもしましたが、状況は変わりません。 対処法がわかればご教示くださいますようお願いします。

  • IPアドレスが表示されません。ネットワーク接続が表示されません。関係が

    IPアドレスが表示されません。ネットワーク接続が表示されません。関係があると思うのですが初心者なのでよく分かりません。ネットで素人なりに色々調べたのですが解決しません。どなたか詳しい方、分かりやすく教えてください。コマンドプロンプトからipconfig>enter⇒アプリケーションエラー「アプリケーションを正しく初期化できませんでした。(0xc0000005)[OK]をクリックしてアプリケーションを終了してください。」とでます。ipconfig(スペース)/allも同様。ipconfig /release、ipconfig /renewもダメでした。route printというのをやってみましたらIPアドレスらしい物が色々がでます。 ファイル名を指定して実行 winipcfgでは 'winipcfg'が見つかりません。「名前を正しく入力したかどうかを確認してからやり直してください。ファイルを検索するには、[スタート]ボタンをクリックしてから、[検索]をクリックしてください。」とでます。 また、ファイル名を指定して実行 sfc /scannowでは Windows ファイル保護 「Windows を正しく動作させるために必要なファイルをDLLキャッシュからコピーする必要があります。 Windows XP Professional CD-ROMを挿入してください。」とでます。XPはHOMEなのですが。 ネットワーク接続では マイコンピュータ>右クリック>プロパティ>ハードウェア>デバイスマネージャ>ネットワークアダプタ> ・1394 ネットアダプタ #2 ・Reaitec RTL8139 Family PIC Fast Ethernet NIC #2 の2つがあります。「#2」がおかしいのでしょうか?どちらも動いているように思うのですが。 現時点ではこの程度まではわかりましたが、何をどうしたらいいのでしょうか? OSはXP-HOME SP3です。リカバリーのCDはありません。 よろしくお願いします。

  • PowerShellからPowerShellを呼び出す方法

    PowerShellからPowerShellを呼び出す方法 次のバッチファイルと同等の事をPowerShellで行う方法を教えて下さい。 下記のような非常に簡易的なバッチファイルがあるとします。 ■ aaa.bat ■ echo test ■ aaa.bat ■ ■ bbb.bat ■ aaa.bat > aaa.log ■ bbb.bat ■ ■ コマンドプロンプト ■ cmd> aaa.bat ・・・ 下に「test」と出力される test cmd> bbb.bat ・・・ ファイルaaa.logに「test」と出力される ■ コマンドプロンプト ■ 同じ事をPowerShellでするとすれば ■ aaa.ps1 ■ echo "test" ■ aaa.ps1 ■ ■ PowerShellの画面から ■ PS > ./aaa.ps1 ・・・ 下に「test」と出力される test PS > ./bbb.ps1 ・・・ ファイルaaa.logに「test」と出力される ■ PowerShellの画面から ■ この時の「bbb.ps1」はどのようになりますか?

  • Firefoxでgoogleやhatenaやamazonなどのログイン画面に入れません.

    Firefoxでgoogleやhatenaやamazonなどのログイン画面に入れません. https://www.hatena.ne.jp/login https://www.google.com/accounts/Login に入ろうとすると,「ページ読み込みエラー」になってしまいます. まとめると, ・firefoxでも,上にあげたようなページ以外は普通に繋がる. ・IEでは,ログイン画面にも入ることは可能(もちろんログインも出来る). ・cookieを全て削除しても依然として解決しません. ・PROXY設定をしている(大学の設定ではPROXYなしで,ネットにアクセス出来ません) ・firefoxの以前のバージョンでもログイン画面にいけない. 環境:Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1) Gecko/20061010 Firefox/2.0 宜しくお願いします.

  • Powershell

    Powershellについてよくわからないのですが、 ググってみると -------------------------------------------------- Windows PowerShell は、マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスク リプト言語である。 オブジェクト指向に基づいて設計されており、. NET Frameworkを基盤としている。 -------------------------------------------------- と記載されていたのですが、 要するにどういう事ですか? プログラミング言語ですか? ソフトウェアですか?