2009-03-03 96 views
103

Có một lệnh dòng lệnh Windows mà tôi có thể sử dụng để lấy đường dẫn đầy đủ đến thư mục làm việc hiện tại không? Ngoài ra, làm thế nào tôi có thể lưu trữ đường dẫn này bên trong một biến được sử dụng trong một tập tin thực thi?Lệnh shell của Windows để lấy đường dẫn đầy đủ đến thư mục hiện tại?

+1

Bạn dường như thiếu một phần quan trọng của câu hỏi. Vui lòng chỉnh sửa. – GEOCHET

+0

tìm/dir/to/start/from-type f -ls Định dạng này là ngày để tìm số/dir/to/start/from-type f -exec ls -l - time-style = "+% Y% m % e% H:% M "{} \; –

Trả lời

170

Sử dụng cd không có đối số nếu bạn đang sử dụng vỏ trực tiếp hoặc %cd% nếu bạn muốn sử dụng nó trong tệp hàng loạt (hoạt động như môi trường var).

+8

* Làm cách nào * bạn hiểu những gì anh ấy đang cố gắng nói từ * rằng *? Và, dưới dos và cửa sổ cmd, nó thường chỉ là "cd" – Rook

+9

Thành thật mà nói, tôi không thể nghĩ ra bất cứ điều gì khác mà họ có thể đang cố hỏi như câu hỏi đã nêu. –

+0

@Trevor - Hehehe, vâng. Thật. – Rook

21

Trên Unix?

pwd

+1

OP ban đầu được yêu cầu "lệnh" và không chỉ định OS. Hệ điều hành đã được chỉ định để câu trả lời này không còn phù hợp nữa. – Tisch

5

Đối với Windows, cd bởi chính nó sẽ cho bạn thấy thư mục làm việc hiện hành.

Đối với các hệ thống UNIX và làm việc, pwd sẽ thực hiện cùng một tác vụ. Bạn cũng có thể sử dụng biến shell $PWD trong một số trình bao. Tôi không chắc chắn nếu Windows hỗ trợ nhận được thư mục làm việc hiện tại thông qua một biến shell hay không.

+0

Tôi không thể hiểu tại sao anh ta cần "cd" để xem thư mục hiện tại của mình. Theo mặc định, nó được hiển thị như ngày. Và nếu anh ta thay đổi nó, hơn anh ta chắc chắn biết những gì "cd" không. – Rook

+1

Anh ấy cần nó trong một tập tin thực thi. – Ikke

+0

rất cũ, nhưng chỉ để hoàn thành: có, cửa sổ không có một biến cho điều này. Nó được đặt tên (đoán ...) '% cd%' – Stephan

3

Dựa trên câu hỏi tiếp theo (lưu trữ dữ liệu trong một biến) trong các nhận xét cho bài đăng chdir tôi cá rằng anh ấy muốn lưu trữ đường dẫn hiện tại để khôi phục sau khi thay đổi thư mục.

Người dùng ban đầu nên xem "pushd", thay đổi thư mục và đẩy thư mục hiện tại lên ngăn xếp có thể được khôi phục bằng "popd". Trên bất kỳ vỏ Windows cmd hiện đại nào là cách để thực hiện khi tạo các tệp batch.

Nếu bạn thực sự cần lấy đường dẫn hiện tại thì vỏ cmd hiện đại cũng có biến% CD% mà bạn có thể dễ dàng lấy đi trong biến khác để tham khảo.

36

Trích dẫn sự giúp đỡ của Windows cho set lệnh (set /?):

 
If Command Extensions are enabled, then there are several dynamic 
environment variables that can be expanded but which don't show up in 
the list of variables displayed by SET. These variable values are 
computed dynamically each time the value of the variable is expanded. 
If the user explicitly defines a variable with one of these names, then 
that definition will override the dynamic one described below: 

%CD% - expands to the current directory string. 

%DATE% - expands to current date using same format as DATE command. 

%TIME% - expands to current time using same format as TIME command. 

%RANDOM% - expands to a random decimal number between 0 and 32767. 

%ERRORLEVEL% - expands to the current ERRORLEVEL value 

%CMDEXTVERSION% - expands to the current Command Processor Extensions 
    version number. 

%CMDCMDLINE% - expands to the original command line that invoked the 
    Command Processor. 

Lưu ý phần %CD% - expands to the current directory string..

6

này đã luôn luôn làm việc cho tôi:

SET CurrentDir="%~dp0" 

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

ECHO %CurrentDir% 

Pause 
+2

Điều đó làm điều sai - tìm đường dẫn của tập lệnh batch, không phải thư mục hiện tại. –

+1

Bị bỏ qua do không trả lời câu hỏi của OP. – Tisch

+0

Được thăng hạng do trả lời câu hỏi của OP ... và cho tôi giải pháp chính xác mà tôi đang tìm kiếm. Cảm ơn! –

55

Bạn có thể thiết lập một biến hàng loạt/môi trường như sau:

SET var=%cd% 
ECHO %var% 

mẫu ảnh chụp màn hình từ một Windows 7 x64 cmd.exe.

enter image description here

Cập nhật: nếu bạn làm một SET var = %cd% thay vì SET var=%cd%, dưới đây là những gì xảy ra. Nhờ jeb.

enter image description here

Capturing the current directory from a batch file

+1

Theo câu hỏi, câu trả lời này thực sự phải là câu trả lời. –

+4

Nhưng nó không hoạt động, như 'SET var =% cd%' đặt giá trị trong biến 'var ' không vào 'var'. Bạn nên tránh các khoảng trống trong lệnh SET – jeb

+1

Theo câu hỏi, câu trả lời này thực sự nên là câu trả lời. –

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

Nhưng, tất nhiên , câu trả lời gmaran23 là dễ dàng hơn nhiều một.

9

Đối với Windows chúng ta có thể sử dụng

cd

và cho Linux

pwd

lệnh là ở đó.

3

Trong Windows:

chdir Hiển thị tên hoặc thay đổi thư mục hiện hành.

Trong Linux:

PWD Hiển thị tên của thư mục hiện hành.

0

Trong lời nhắc lệnh của Windows, chdir hoặc cd sẽ in đường dẫn đầy đủ của thư mục làm việc hiện tại trong bảng điều khiển. Nếu chúng ta muốn sao chép đường dẫn thì chúng ta có thể sử dụng: cd | clip.

Cảm ơn.

-3

Trong Windows Loại cd cho làm việc hiện tại Đường dẫn Trong Linux pwd Đối với con đường hiện tại làm việc

+2

Đã có 10 câu trả lời với cùng một giải pháp, nhưng giải thích thêm – jeb

Các vấn đề liên quan