2008-12-05 29 views
21

Bên trong tệp loạt cửa sổ tôi muốn mô tả tên đường dẫn đầy đủ của tệp lô này là gì.Tìm tên tệp của tệp lô đang chạy

Tôi đã thử% 0 nhưng điều này chỉ cho tôi lệnh được nhập (ví dụ: chỉ tên tệp không có đường dẫn hoặc tiện ích mở rộng).

+0

Tôi hoàn toàn không hiểu những gì bạn đang yêu cầu. % 0 là nội dung bạn đã nhập để khởi chạy tập lệnh. Kịch bản có khởi chạy tập lệnh khác không? Nó có liên kết với người khác không? Thông tin thêm xin vui lòng. – jim

+0

Nếu bạn chỉ sử dụng% 0, bạn sẽ không nhận được tên đường dẫn đầy đủ. Để định nghĩa lại tập tin thực thi của bạn trong số các ứng dụng khác% 0 là không đủ. – Martin

Trả lời

23
echo %~f0 

công trình đối với tôi.

7

% CD% cung cấp thư mục hiện tại.

% ~ dp0 sẽ cung cấp cho bạn các thư mục kịch bản là ở

IE:. Kịch bản trong c: \ thư mục, tôi gọi nó là từ c: \ otherfolder

% CD% = C: \ otherfolder

% ~ dp0 = c: \ thư mục

(tôi 99% chắc chắn tôi đã có những con đường đúng tròn, nhưng không có cửa sổ để kiểm tra atm).

chỉnh sửa: và từ đó, bằng cách sử dụng một bạn đã có, bạn sẽ có thể để có được tên tập tin batch

30

Để biết thông tin của bạn,

Bạn sẽ cần phải kích hoạt lệnh mở rộng, mà không tồn tại trước khi Win 2000 (tôi không biết NT4)

SEE: cmd.exe /?

/E:ON Enable command extensions (see below) 
/E:OFF Disable command extensions (see below) 

tiện ích mở rộng lệnh được bật theo mặc định trên cửa sổ.

Một trợ giúp khác mà tôi đề xuất đọc là lệnh FOR. Nó chứa đầy đủ ý nghĩa cho những lá cờ đó.

SEE: for /?

In addition, substitution of FOR variable references has been enhanced. 
You can now use the following optional syntax: 

    %~I   - expands %I removing any surrounding quotes (") 
    %~fI  - expands %I to a fully qualified path name 
    %~dI  - expands %I to a drive letter only 
    %~pI  - expands %I to a path only 
    %~nI  - expands %I to a file name only 
    %~xI  - expands %I to a file extension only 
    %~sI  - expanded path contains short names only 
    %~aI  - expands %I to file attributes of file 
    %~tI  - expands %I to date/time of file 
    %~zI  - expands %I to size of file 
    %~$PATH:I - searches the directories listed in the PATH 
        environment variable and expands %I to the 
        fully qualified name of the first one found. 
        If the environment variable name is not 
        defined or the file is not found by the 
        search, then this modifier expands to the 
        empty string 

The modifiers can be combined to get compound results: 

    %~dpI  - expands %I to a drive letter and path only 
    %~nxI  - expands %I to a file name and extension only 
    %~fsI  - expands %I to a full path name with short names only 
    %~dp$PATH:I - searches the directories listed in the PATH 
        environment variable for %I and expands to the 
        drive letter and path of the first one found. 
    %~ftzaI  - expands %I to a DIR like output line 

In the above examples %I and PATH can be replaced by other valid 
values. The %~ syntax is terminated by a valid FOR variable name. 
Picking upper case variable names like %I makes it more readable and 
avoids confusion with the modifiers, which are not case sensitive. 
+0

chỉ cần thay thế I bằng 0 – waza123

1

"% ~ f0"

"% ~ dpnx0"

Hoặc ở trên cung cấp cho các đường dẫn đầy-đủ điều kiện. Đính kèm nó trong dấu ngoặc kép trong trường hợp đường dẫn chứa dấu cách.

0

KÊU GỌI SCRIPT: "FIRST.BAT":

call second.bat %0 parameter-a parameter-b 

GỌI SCRIPT: "SECOND.BAT":

echo The name of this called script should be "SECOND", proof: %~n0 
echo The 1st parameter passed should be "FIRST", proof: %1 shift 
echo The name of the calling script should be "FIRST", proof: %~n0 
echo The 1st parameter should be "parameter-a", proof: %1 
+0

Tôi hy vọng rằng các cải tiến định dạng của tôi là chính xác. – zx485

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