PowerShell cdコマンドの空白入力について

HoriAkihiro 20 評価のポイント
2024-12-14T17:07:52.7066667+00:00

はじめまして。

Windows PowerShellのcdコマンドについて質問です。

"cd c:\Program Files (x86)"のような文字列やフォルダ名を入力すると、エラーが発生しています。

"cd c:"のような文字列はエラーが生じません。

対処法などあれば教えていただけませんでしょうか。

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

-不具合を確認した環境-

Windows 11 x64 Home edition / 日本語環境

Windows
Windows
パーソナル コンピューター、タブレット、ノート PC、電話、モノのインターネット デバイス、自己完結型 Mixed Reality ヘッドセット、大規模なコラボレーション画面、その他のデバイスにわたって実行される Microsoft オペレーティング システムのファミリ。
92 件の質問
Windows Server PowerShell
Windows Server PowerShell
Windows Server: エンタープライズ レベルの管理、データ ストレージ、アプリケーション、通信をサポートする Microsoft サーバー オペレーティング システムのファミリ。PowerShell: コマンドライン シェルと関連するスクリプト言語で構成される Microsoft タスク自動化および構成管理フレームワークのファミリ。
4 件の質問
PowerShell
PowerShell
コマンドライン シェルと関連するスクリプト言語で構成される Microsoft タスク自動化および構成管理フレームワークのファミリ。
26 件の質問
0 件のコメント コメントはありません
{count} 件の投票

承認済みの回答
  1. gekka 10,561 評価のポイント MVP
    2024-12-15T00:49:34.5266667+00:00

    コマンド以降にスペースを含む文字列を指定した場合、コマンドに渡される文字列はスペースで分割されて解釈される(プログラムが文字列解析でスペースで分割する)ため、そのままだとc:\ProgramFiles(x86)を渡すという意味になってしまいます。 分割されないようにするには

    cd "c:\Program Files (x86)"
    

    のように、ダブルクォーテーションで囲んでください。

    または

    $target="c:\Program Files (x86)"
    cd $target
    

    のように、いったん文字列を変数に入れておいて、コマンドはその変数を使うという手もあります。

    なお、文字列にダブルクォーテーションを含む場合はバッククォートでエスケープする必要があります。

    echo "cd `"C:\Program Files (x86)`""
    
    $target="`"c:\Program Files (x86)`""
    echo $target
    

    # 分割の説明が不正確だった個所を追記と修正

    1 人がこの回答が役に立ったと思いました。

0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。