現在のディレクトリへの完全なパスを取得するWindowsシェルコマンド?


223

現在の作業ディレクトリへのフルパスを取得するために使用できるWindowsコマンドラインコマンドはありますか?

また、バッチファイルで使用される変数内にこのパスを保存するにはどうすればよいですか?


find / dir / to / start / from -type f -lsこの日付を数値にフォーマットしますfind / dir / to / start / from -type f -exec ls -l --time-style = "+%Y%m% e%H:%M "{} \;

回答:


356

cdシェルを直接%cd%使用している場合、またはシェルをバッチファイルで使用する場合(環境変数のように動作します)、引数なしで使用します。


11
それから彼が何を言おうとしていたのか、どうやって理解したのですか。そして、dosとwindows cmdの下では、通常は単に「cd」
Rook

10
正直なところ、質問が述べているように、彼らが尋ねようとしている可能性のある他のことは何も考えられませんでした。
Trevor Bramble

1
このパスを.batファイルの変数内に保存できますか?
user62958

@unknown-元の問題を最初に説明する方がよいでしょう。
ルーク

100

次のように、バッチ/環境変数を設定できます。

SET var=%cd%
ECHO %var%

Windows 7 x64 cmd.exeのサンプルスクリーンショット。

enter image description here

更新:SET var = %cd%代わりにを実行するとSET var=%cd%、以下のようになります。jebに感謝します。

enter image description here

バッチファイルから現在のディレクトリをキャプチャする


2
質問によると、この答えは実際に受け入れられるものでなければなりません。
ルネNyffenegger

7
しかし、それは動作しません、などSET var = %cd%の変数に値を入れvar<space>ていないにvar。SETコマンドではスペースを使用しないでください
jeb

1
質問によると、この答えは実際に受け入れられるものでなければなりません。
shridutt kothari

51

setコマンド(set /?)のWindowsヘルプを引用します。

コマンド拡張機能が有効になっている場合、いくつかの動的な
展開できるが表示されない環境変数
SETによって表示される変数のリスト。これらの変数値は
変数の値が展開されるたびに動的に計算されます。
ユーザーがこれらの名前のいずれかで変数を明示的に定義した場合、
この定義は、以下で説明する動的な定義をオーバーライドします。

%CD%-現在のディレクトリ文字列に展開します。

%DATE%-DATEコマンドと同じ形式を使用して現在の日付に展開します。

%TIME%-TIMEコマンドと同じ形式を使用して現在の時刻に展開します。

%RANDOM%-0〜32767のランダムな10進数に展開されます。

%ERRORLEVEL%-現在のERRORLEVEL値に展開します

%CMDEXTVERSION%-現在のコマンドプロセッサ拡張に展開
    バージョンナンバー。

%CMDCMDLINE%-を呼び出した元のコマンドラインに展開します
    コマンドプロセッサ。

%CD% - expands to the current directory string.パーツに注意してください。



18

Windowsの場合は、

cd

Linuxの場合

pwd

コマンドがあります。


17

これは常に私のために働きました:

SET CurrentDir="%~dp0"

ECHO The current file path this bat file is executing in is the following:

ECHO %CurrentDir%

Pause

2
これは間違っています。現在のディレクトリではなく、バッチスクリプトのパスを検索します。
ハリージョンストン

2
OPの質問に答えて、私が探していた正確なソリューションを提供してくれたことに賛成。ありがとう!
A-Diddy

ナイスキャッチ。現在のディレクトリは、ファイルの場所自体ではなく、ファイルを呼び出すコマンドを参照する場合があります。
Tam Le

9

Windowsの場合 cd、単独で現在の作業ディレクトリが表示されます。

UNIXおよび同様のシステムでpwdは、同じタスクを実行します。$PWD一部のシェルではシェル変数を使用することもできます。Windowsがシェル変数を介して現在の作業ディレクトリを取得することをサポートしているかどうかはわかりません。


しかし、なぜ彼が現在のディレクトリを見るのに「cd」が必要なのか理解できません。デフォルトでは、日として表示されます。そして、彼がそれを変えたなら、彼は確かに「cd」が何をするか知っているよりも。
ルーク

非常に古いですが、完全を期すためです。はい、Windowsにはこのための変数があります。名前は(推測...)%cd%
Stephan


5

chdirの投稿へのコメントのフォローアップの質問(変数にデータを保存する)に基づいて、ディレクトリを変更した後に現在のパスを保存して復元したいと思います。

元のユーザーは「pushd」を確認する必要があります。これはディレクトリを変更し、現在のディレクトリを「popd」で復元できるスタックにプッシュします。バッチファイルを作成するときに使用する最新のWindows cmdシェル。

本当に現在のパスを取得する必要がある場合、最新のcmdシェルにも%CD%変数があり、参照用に別の変数に簡単に格納できます。


5

.batSystem32にファイルを作成し、copypath.bat現在のパスをコピーするコマンドに次のような名前を付けます

echo %cd% | clip

説明:

%cd%現在のパスを提供します

CLIP

Description:
    Redirects output of command line tools to the Windows clipboard.
    This text output can then be pasted into other programs.

Parameter List:
    /?                  Displays this help message.

Examples:
    DIR | CLIP          Places a copy of the current directory
                        listing into the Windows clipboard.

    CLIP < README.TXT   Places a copy of the text from readme.txt
                        on to the Windows clipboard.

copyclipどこからでも利用可能です。


3
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%

ただし、もちろん、gmaran23の方がはるかに簡単です。


あなたの答えは間違っているので、彼の答えは定義により良いです。スペースを含むパスでは機能しません。
Garric

tokens=*修正を追加します。
ルネNyffenegger

2

Windowsコマンドプロンプトで、chdirまたはcdコンソールの現在の作業ディレクトリの完全パスを出力します。

パスをコピーする場合は、次を使用できますcd | clip


0

Windowsでは、cd作業中の現在のパスを入力します。

Linuxではpwd、現在の作業パス。


5
同じソリューションですでに10の回答がありますが、さらに説明があります
jeb

0

可能なコードの1つとして

    echo off
    for /f "usebackq tokens=* delims= " %%x in (`chdir`) do set var=%var% %%x
    echo The current directory is: "%var:~1%"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.