Windows でパスに空白を含むときの回避策

「C:\Program Files」とか「C:\Documents and Settings」とか空白が有るとなにかと不便。そこで回避策を2つほど

  1. 「"」で囲む        cd "c:\Program Files\test"
  2. MS-DOS8.3形式で短縮する  cd c:\PROGRA~1\test

一般的に「"」で囲むのが一般的ですがこれだとたまに使えないことがあります。それはstartコマンド等が「"」で囲ってあるとパスではなく文字列として認識してしまうためです。
例:以下のスタート処理は動きません。「"c:\Program Files\test\test.exe"」という名前のコマンドスクリプトが起動してしまいます。

  start "c:\Program Files\test\test.exe"

そんな時はMS-DOS短縮を使いましょう。短縮後の名前は「dir /x」コマンドで確認できます。

C:\>dir /x
2007/12/25  19:54    <DIR>          DOCUME~1     Documents and Settings
2008/01/21  09:30    <DIR>          PROGRA~1     Program Files
2007/06/26  17:25    <DIR>                       ruby
2007/09/12  18:27    <DIR>          SUBVER~1     subversion

これなら快適に動きます。

  start c:\PROGRA~1\test\test.exe

また短縮されているので名前が短くてすみます。スクリプトが少しだけ短くなったりもする。(あんま意味無いけど)

またトリッキーですが

  cd "c:\Program Files\test" としてから
  start test.exe

というのも手ですね。パスを「"」で囲えるコマンドで空白文字を回避してから本来使いたかったコマンドを実行する。*1

*1:「te st.exe」等とexe名にスペースが入っていたらダメですが。