Perintah shell Windows untuk mendapatkan path lengkap ke direktori saat ini?


223

Apakah ada perintah baris perintah Windows yang bisa saya gunakan untuk mendapatkan path lengkap ke direktori kerja saat ini?

Juga, bagaimana saya bisa menyimpan jalur ini di dalam variabel yang digunakan dalam file batch?


find / dir / to / start / from -type f -ls Format ini tanggal untuk numeric find / dir / to / start / from -type f -exec ls -l --waktu-style = "+% Y% m% e% H:% M "{} \;

Jawaban:


356

Gunakan cdtanpa argumen jika Anda menggunakan shell secara langsung, atau %cd%jika Anda ingin menggunakannya dalam file batch (berperilaku seperti variabel lingkungan).


11
Bagaimana Anda mengerti apa yang dia katakan dari itu ? Dan, di bawah dos dan windows cmd, biasanya hanya "cd"
Rook

10
Jujur, saya tidak bisa memikirkan hal lain yang mungkin mereka coba tanyakan seperti yang dinyatakan pertanyaan.
Trevor Bramble

1
Bisakah saya menyimpan jalur ini di dalam variabel dalam file .bat?
user62958

@unknown - Anda mungkin lebih baik dengan menggambarkan masalah asli di tempat pertama.
Benteng

100

Anda dapat mengatur variabel batch / lingkungan sebagai berikut:

SET var=%cd%
ECHO %var%

contoh tangkapan layar dari Windows 7 x64 cmd.exe.

masukkan deskripsi gambar di sini

Perbarui: jika Anda melakukanSET var = %cd%alih-alihSET var=%cd%, di bawah ini yang terjadi. Terima kasih untuk jeb.

masukkan deskripsi gambar di sini

Mengambil direktori saat ini dari file batch


2
Menurut pertanyaan, jawaban ini seharusnya benar-benar diterima.
René Nyffenegger

7
Tetapi itu tidak berhasil, karena SET var = %cd%menempatkan nilai dalam variabel var<space>tidak menjadi var. Anda harus menghindari spasi dalam perintah SET
jeb

1
Menurut pertanyaan, jawaban ini seharusnya benar-benar diterima.
shridutt kothari

51

Mengutip bantuan Windows untuk setperintah ( set /?):

Jika Ekstensi Perintah diaktifkan, maka ada beberapa dinamis
variabel lingkungan yang dapat diperluas tetapi tidak muncul di
daftar variabel yang ditampilkan oleh SET. Nilai variabel ini adalah
dihitung secara dinamis setiap kali nilai variabel diperluas.
Jika pengguna secara eksplisit mendefinisikan variabel dengan salah satu dari nama-nama ini, maka
definisi itu akan menggantikan definisi dinamis yang dijelaskan di bawah ini:

% CD% - memperluas ke string direktori saat ini.

% DATE% - memperluas ke tanggal saat ini menggunakan format yang sama dengan perintah DATE.

% TIME% - meluas ke waktu saat ini menggunakan format yang sama dengan perintah TIME.

% RANDOM% - meluas ke angka desimal acak antara 0 dan 32767.

% ERRORLEVEL% - memperluas ke nilai ERRORLEVEL saat ini

% CMDEXTVERSION% - memperluas ke Ekstensi Prosesor Perintah saat ini
    nomor versi.

% CMDCMDLINE% - memperluas ke baris perintah asli yang dipanggil
    Pengolah Perintah.

Catat %CD% - expands to the current directory string.bagiannya.


26

Di Unix?

pwd


2
OP awalnya meminta "perintah" dan tidak menentukan OS. OS sekarang telah ditentukan sehingga jawaban ini tidak lagi relevan.
Tisch

18

Untuk Windows bisa kita gunakan

cd

dan untuk Linux

pwd

perintah ada di sana.


17

Ini selalu berhasil untuk saya:

SET CurrentDir="%~dp0"

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

ECHO %CurrentDir%

Pause

2
Itu melakukan hal yang salah - menemukan jalan skrip batch, bukan direktori saat ini.
Harry Johnston

2
Terpilih karena menjawab pertanyaan OP ... dan memberi saya solusi tepat yang saya cari. Terima kasih!
A-Diddy

Tangkapan bagus. Direktori saat ini dapat merujuk ke perintah yang memanggil file alih-alih lokasi file itu sendiri.
Tam Le

9

Untuk Windows, cddengan sendirinya akan menampilkan direktori kerja saat ini.

Untuk sistem UNIX dan workalike, pwdakan melakukan tugas yang sama. Anda juga dapat menggunakan $PWDvariabel shell di bawah beberapa shell. Saya tidak yakin apakah Windows mendukung mendapatkan direktori kerja saat ini melalui variabel shell atau tidak.


Namun saya tidak bisa mengerti mengapa dia perlu "cd" untuk melihat dir-nya saat ini. Secara default, ini terlihat sebagai hari. Dan jika dia mengubahnya, maka dia pasti tahu apa yang "cd" lakukan.
Rook

sangat tua, tetapi hanya untuk kelengkapan: ya, windows memang memiliki variabel untuk ini. Namanya (tebak ...)%cd%
Stephan

8

Di Windows:

CHDIR Menampilkan nama atau mengubah direktori saat ini.

Di Linux:

PWD Menampilkan nama direktori saat ini.


5

Berdasarkan pertanyaan tindak lanjut (simpan data dalam variabel) di komentar ke posting chdir, saya bertaruh dia ingin menyimpan jalur saat ini untuk memulihkannya setelah mengubah direktori.

Pengguna asli harus melihat "pushd", yang mengubah direktori dan mendorong yang sekarang ke tumpukan yang dapat dikembalikan dengan "popd". Pada shell cmd Windows modern apa pun yang harus dilakukan ketika membuat file batch.

Jika Anda benar-benar perlu mengambil lintasan saat ini maka cangkang cmd modern juga memiliki variabel% CD% yang Anda dapat dengan mudah memasukkan dalam variabel lain untuk referensi.


5

Buat .batfile di bawah System32, beri kami nama itu copypath.batperintah untuk menyalin jalur saat ini bisa :

echo %cd% | clip

Penjelasan:

%cd% akan memberi Anda jalur saat ini

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.

Sekarang copycliptersedia dari mana saja.


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

Tapi, tentu saja , jawaban gmaran23 adalah yang jauh lebih mudah.


Jawabannya lebih baik menurut definisi karena jawaban Anda salah. Itu tidak berfungsi untuk jalur dengan spasi.
Garric

Menambahkan tokens=*perbaikan itu.
René Nyffenegger

2

Di prompt perintah Windows, chdiratau cdakan mencetak path lengkap direktori kerja saat ini di konsol.

Jika kita ingin menyalin jalan maka kita dapat menggunakan: cd | clip.


0

Di Windows, ketikkan cduntuk jalur saat ini yang berfungsi.

Di Linux, pwduntuk jalur kerja saat ini.


5
Sudah ada 10 jawaban dengan solusi yang sama, tetapi lebih banyak penjelasan
jeb

0

Sebagai salah satu kode yang mungkin

    echo off
    for /f "usebackq tokens=* delims= " %%x in (`chdir`) do set var=%var% %%x
    echo The current directory is: "%var:~1%"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.