2017-05-07 10 views
0

%~dp0変数をウィンドウのバッチスクリプト内でエコーして使用したいが、私は書いているが、パスにはスクリプトの他の部分が壊れているスペースが含まれている二重引用%~dp0しかしそれはまだ働いていないので、ちょうどdir /Xコマンドに現われたフォーマットのような短い名前を使用することを考えていますが、私は%~dp0の短い名前を得るためにあなたの助けが必要です。Windowsのバッチスクリプトでスペースを含む短い名前を表示する

お願いしますか?

+2

すべてのファイルに短い名前があるわけではありません。実際、短い名前生成は、ファイルシステムレベルで完全に無効にすることができます。これは許容可能な回避策ではありません。あなたは、ファイル名の引用が機能していない理由を理解する必要があります。 –

+0

これは '%dp0'変数の問題ではありません。スクリプトの問題のように聞こえます。あなたの質問にあなたのスクリプトを追加してください – samdd

+0

start%〜dp0zookeeper \ bin \ zkServer.cmd – user212051

答えて

0

%~dp0変数の前のハイフンは、パスにスペースが含まれている場合は先頭と末尾の引用符を削除することを示します。例えば

Path : C:\Program Files\application 
%dp0 : "C:\Program Files\application" 
%~dp0 : C:\Program Files\application 

Path : C:\Windows\System32 
%dp0 : C:\Windows\System32 
%~dp0 : C:\Windows\System32 

あなたは強制的に使用し、引用符をstartコマンドを使用して、引用符でパスを使用するためには"%~dp0"

を使用することにより、あなたは設定する必要がありますウィンドウのタイトル(空白にすることができます)。例えば。 start %dp0 ==>start "" %dp0

@Cody_Grayによってコメントされたように、のパスは短い名前ではありません。

+0

start%〜dp0zookeeper \ bin \ zkServer.cmd %〜dp0に空白が含まれていると、これは動作しません。 – user212051

+0

@ user212051 'start" ""%〜dp0zookeeper \ bin \ zkServer.cmd "' – samdd

+0

を試してみてください!ありがとう! 最終的なもの、そのようにするにはどうすればいいですか? start%〜dp0drill \ bin \ sqlline.bat -u "jdbc:ドリル:zk =ローカル" – user212051

関連する問題