2011-01-25 10 views
8

私が継承しているバッチファイルがあり、64ビットWindows 7環境で作業することができません。バッチファイルはJavaスクリプトを呼び出し、2つの変数を渡します。古いものは次のようになっています:Windows 7の32ビットプログラムファイルのパスバッチファイル内のパス問題

これは1つのプログラムファイルだけを持つ32ビットXPで実行されました。私はプログラムフィールズx86への道のりを変えるために考えられるあらゆる方法を試しました。私はSET PATH、SET ExecPath、%ProgrmaFiles(x86)を試しましたが、それらのすべてが指定されたパスを見つけることができません。私は答えが簡単だと確信しています、そして、これを行うための非常にビートルの方法があることを知っています、そしてそれは変更されるでしょうが、現時点では、私はこれが働くために必要です。どんな助けでも、大いに感謝します。

+0

dos(/ short)パス名はWindows 64bitで利用できますか? – Christian

+0

@Christianの場合、ファイルシステムドライバのハードリンクとして実装されます。これは無効にすることもできますが、場合によってはそうする必要がありますが、デフォルトでは有効になっています。 – Joey

答えて

27

あなたは

dir /x c:\ 

を入力すると、これは8.3形式でディレクトリの一覧を示しています。 Program FilesPROGRA~1に、Program Files (x86)PROGRA~2にそれぞれ拡張されます。だから私はあなたが使用するスクリプトを変更する必要があると思うPROGRA~2

編集:これは理想的ではないことをマークに同意する - それはあなたがレガシースクリプトを変更することができるかによって異なります。 Win7マシンでは、%ProgramFiles%%ProgramFiles(x86)%(末尾の '%'に注意してください)を使用できるはずです。これは私のために働いた

+0

ありがとうございました。それは – KCavon

+1

でした。より一般的なコードにしてこの値を計算したいと思うかもしれません。例えば"%ProgramFiles(x86)%"の%xの行に沿ったものです。echo%〜fsx – John

+1

これは危険です。 〜1と〜2は、必ずしも 'Program Files'や' Program Files(x86) 'には対応していません。マシンの99%でも動作しますが、チルダの略語は" Progra "で始まる最初のフォルダを意味します。 –

1

輸出JAVA_HOME =/cygdriveの/ C/PROGRA〜1 /のJava/jdk1.7.0_40/

+0

バッチスクリプトではなく、Cygwin環境でのみ動作します。 –

+0

..バッチスクリプトでは、SET A = B:¥X¥Y¥Zを使用します。 – Li3ro

関連する問題