Có một dòng lệnh Windows mà tôi có thể sử dụng để có được đường dẫn đầy đủ đến thư mục làm việc hiện tại không?
Ngoài ra, làm cách 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 tệp bó?
Có một dòng lệnh Windows mà tôi có thể sử dụng để có được đường dẫn đầy đủ đến thư mục làm việc hiện tại không?
Ngoài ra, làm cách 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 tệp bó?
Câu trả lời:
Sử dụng cd
không có đối số nếu bạn đang sử dụng shell trực tiếp hoặc %cd%
nếu bạn muốn sử dụng nó trong một tệp bó (nó hoạt động như một biến môi trường).
Bạn có thể đặt biến lô / môi trường như sau:
SET var=%cd%
ECHO %var%
ảnh chụp màn hình mẫu từ Windows 7 x64 cmd.exe.
Cập nhật: nếu bạn làmSET var = %cd%
thay vìSET var=%cd%
, dưới đây là những gì xảy ra. Cảm ơn jeb.
SET var = %cd%
đặt giá trị trong biến var<space>
không vào var
. Bạn nên tránh các khoảng trắng trong lệnh SET
Trích dẫn trợ giúp Windows cho set
lệnh ( set /?
):
Nếu tiện ích mở rộng lệnh được bật, thì có một số động các biến môi trường có thể được mở rộng nhưng không xuất hiện trong danh sách các biến được hiển thị bởi SET. Các giá trị biến này là được tính toán linh hoạt mỗi lần giá trị của biến được mở rộng. Nếu người dùng định nghĩa rõ ràng một biến với một trong những tên này, thì định nghĩa đó sẽ ghi đè lên động được mô tả dưới đây: % CD% - mở rộng sang chuỗi thư mục hiện tại. % DATE% - mở rộng đến ngày hiện tại bằng cách sử dụng cùng định dạng với lệnh DATE. % TIME% - mở rộng đến thời điểm hiện tại bằng cách sử dụng cùng định dạng với lệnh TIME. % RANDOM% - mở rộng thành số thập phân ngẫu nhiên trong khoảng từ 0 đến 32767. % ERRORLEVEL% - mở rộng đến giá trị ERRORLEVEL hiện tại % CMDEXTVERSION% - mở rộng sang Tiện ích mở rộng Bộ xử lý lệnh hiện tại số phiên bản. % CMDCMDLINE% - mở rộng đến dòng lệnh ban đầu đã gọi Bộ xử lý lệnh.
Lưu ý %CD% - expands to the current directory string.
một phần.
Trên Unix?
pwd
Điều 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
Đối với Windows, cd
chính nó sẽ hiển thị cho bạn thư mục làm việc hiện tại.
Đối với các hệ thống UNIX và workalike, pwd
sẽ thực hiện cùng một nhiệm vụ. Bạn cũng có thể sử dụng $PWD
biến shell dưới một số shell. Tôi không chắc chắn nếu Windows hỗ trợ nhận thư mục làm việc hiện tại thông qua một biến shell hay không.
%cd%
Trên Windows:
CHDIR Hiển thị tên hoặc thay đổi thư mục hiện tại.
Trong Linux:
PWD Hiển thị tên của thư mục hiện tại.
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 bình luận cho bài đăng chdir Tôi cá cược anh ấy muốn lưu trữ đường dẫn hiện tại để khôi phục dữ liệu đó sau khi thay đổi thư mục.
Người dùng ban đầu nên xem "Pushd", thay đổi thư mục và đẩy cái hiện tại lên một ngăn xếp có thể được khôi phục bằng "popd". Trên bất kỳ shell cmd Windows hiện đại nào là cách để thực hiện khi tạo các tệp bó.
Nếu bạn thực sự cần phải lấy đường dẫn hiện tại thì các vỏ cmd hiện đại cũng có biến% CD% mà bạn có thể dễ dàng bỏ đi trong một biến khác để tham khảo.
Tạo một .bat
tệp bên dưới System32
, chúng ta hãy đặt tên cho nó copypath.bat
là lệnh sao chép đường dẫn hiện tại có thể là :
echo %cd% | clip
Giải thích:
%cd%
sẽ cung cấp cho bạn đường dẫn hiện tại
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.
Bây giờ copyclip
có sẵn từ khắp mọi nơi.
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%
Nhưng, tất nhiên , câu trả lời của gmaran23 là dễ dàng hơn nhiều.
tokens=*
sửa chữa đó.
Trong dấu 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àn đ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
.
Trên Windows, gõ cd
cho đường dẫn hiện tại làm việc.
Trên Linux, pwd
cho con đường làm việc hiện tại.