2009-08-26 29 views
10

Tôi đang viết một tập lệnh xây dựng và nếu thư mục người dùng tạo tập lệnh chứa khoảng trắng, mọi thứ sẽ bị tách rời. Để giải quyết vấn đề đó, tôi đã nghĩ đến việc sử dụng 8,3 tên tệp để drive:\Documents and setttings\whatever trở thành drive:\Docume~1\whatever. Thư mục hiện tại có thể được tìm thấy bằng cách truy vấn biến môi trường% CD%.Làm cách nào để chuyển đổi thư mục hoạt động sang tên tệp ngắn 8.3 bằng hàng loạt?

Làm cách nào để chuyển đổi% CD% thành đường dẫn tệp ngắn?

Trả lời

19
for %f in ("%cd%") do @echo %~sf 

Chỉnh sửa: đừng quên sử dụng %% nếu bạn đang sử dụng tệp hàng loạt. như thế này

for %%f in ("%cd%") do @echo %%~sf 

Trên máy tính của tôi:

C:\Users\preet>cd "\Program Files" 
C:\Program Files>for %f in ("%cd%") do @echo %~sf 
C:\PROGRA~1 

tùy chọn khác:

Bên cạnh đó, thay thế cho tài liệu tham khảo biến đã được tăng cường. Giờ đây, bạn có thể sử dụng cú pháp tùy chọn sau:

%~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 
+1

đang tìm kiếm điều này bản thân mình - bạn sẽ ngạc nhiên như thế nào googling cứng cho 'cho' và dấu nhắc lệnh là. Thoát khỏi% s đến %% nếu trong một batchfile. – Will

+1

Tôi nhận được thông báo lỗi này: cd ~ sf bất ngờ tại thời điểm này. – Geo

+0

cổ vũ sẽ. Tôi cứ quên làm điều này. –

-3

Tốt hơn: sử dụng các ký tự trích dẫn (") quanh tất cả các đường dẫn của bạn.

+0

thật khó để giải thích, nhưng đây không phải là một tùy chọn. – Geo

+1

Không trả lời câu hỏi của OP, không giải thích lý do tại sao điều này tốt hơn trong các trường hợp hoạt động và không phải lúc nào cũng hoạt động. –

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