2017-10-25 21 views
1

パス全体を含まないルートディレクトリを読み取ることができるバッチコマンドはありますか?ルートディレクトリを読み取るバッチファイル

D:\またはE:\にあるかどうかをバッチファイルで伝えたいです。

私が使用してみました:

set mypath=%cd% 
@echo %mypath% 
Pause 

しかし、それはちょうどそれがだけではなくルートにある正確な場所を言います。バッチファイルがあるディレクトリをカレントディレクトリのCMD.EXEがで動作が異なる可能性があり

答えて

3

を使用します。

編集可変膨張

Set "RootDir=%CD:~,3%" 
Echo(%RootDir% 
Pause 

を使用Forループ

For %%A In (%CD%) Do Set "RootDir=%%~dA\" 
Echo(%RootDir% 
Pause 

を使用PushD/Popd

PushD\&Call Set "RootDir=%%CD%%"&PopD 
Echo(%RootDir% 
Pause 

を使用

質問をもう一度読み終えたら、私は第4の例を追加することにしました。これは、他の3つとは異なり、バッチファイルの場所のルートディレクトリを提供します。

Set "RootDir=%~d0\" 
Echo(%RootDir% 
Pause 
+0

チャームのように働いた!ありがとう! – JakeSixth

2

バッチファイルのルートパスの使用を取得するには:。

for %%a in ("%0") do echo %%~da 

カレントディレクトリをGERするにはここでは、スクリプトカレントディレクトリのルートディレクトリを提供あなたのためのいくつかのオプションがあります

echo "%cd:~0,3%" 
2

そして、私たちは& REMのトリックを忘れないようにしましょう。

@ECHO OFF 
set "root=%cd:\="&rem % 
echo %root% 
+0

私はこれが好きです! ** ':)' ** – Aacini

関連する問題