2008-11-27 33 views
5

Tôi muốn cung cấp văn bản thô đề cập đến một biến môi trường cho một lệnh thay vì đánh giá biến môi trường.Dòng lệnh của Windows: Không đánh giá biến môi trường

Tôi cần này để cấu hình BizTalk từ dòng lệnh, ví dụ:

BTSTask.exe AddResource -ApplicationName: App1 -Loại: System.BizTalk: BizTalkAssembly -Overwrite -Nguồn: .. \ Schemas \ bin \ development \ App1.Schemas.dll -Kiểm tra:% BTAD_InstallDir% \ App1.Schemas.dll

Lệnh này thêm tài nguyên vào ứng dụng BizTalk. Tôi muốn điểm đến là% BTAD_InstallDir% \ App1.Schemas.dll, tuy nhiên hiện tại nó đang đánh giá biến môi trường (không có gì) và sử dụng \ App1.Schemas.dll.

Có thể thoát hoặc vô hiệu hóa việc đánh giá biến môi trường này trong khi phân tích cú pháp \ thi hành lệnh này không?

Tôi đã thử thoát các ký tự đầu tiên và cả hai phần trăm bằng một củ cà rốt (^), tuy nhiên điều này đã không dừng đánh giá.

[EDIT] Khi tôi thực hiện điều này tại dấu nhắc lệnh, nó không thay thế biến môi trường, tuy nhiên khi chạy nó như một tập lệnh, bất kỳ suy nghĩ nào về lý do tại sao lại khác?

Trả lời

3

đã thử:

%%BTAD_InstallDir%% 

trong kịch bản của bạn?

Điều đó sẽ ngăn chặn tập lệnh diễn giải biến và nó sẽ vượt qua %BTAD_InstallDir% cho chương trình.

+0

Tuyệt vời, công trình này tuyệt vời. Điều này làm việc vì nó không thể giải quyết% BTAD_InstallDir% như một biến và do đó lá nó như là giá trị ban đầu của nó? – marcj

+1

%% là cách theo lô để không diễn giải%. Được sử dụng cho biến (như trong '%% a thay vì% a'), vì trong lô% 1,% 2,% 3 có ý nghĩa đặc biệt. – VonC

2

Thử ^% thay vì%.

+0

Cảm ơn câu trả lời của bạn Mikeage, rất tiếc điều này vẫn đánh giá biến môi trường. Có lẽ tôi nên chỉnh sửa câu hỏi của mình để đề cập đến các phương pháp tôi đã thử. – marcj

4

Hãy thử vang^^% path% trong một lệnh nhắc nó in ...

đường

thay vì mở rộng các biến môi trường vì vậy tôi đoán sau đây nên làm việc cho bạn như đề xuất bởi Mikeage

BTSTask.exe AddResource -ApplicationName: App1 -Loại: System.BizTalk: BizTalkAssembly -Overwrite -Nguồn: .. \ Schemas \ bin \ phát triển \ App1.Schemas.dll -Destination: ^% BTAD_Ins tallDir ^% \ App1.Schemas.dll

+0

Thay vì kỳ lạ, ngay cả khi tôi không thoát khỏi tỷ lệ phần trăm, điều này hoạt động khi tôi gõ nó trực tiếp tại dòng lệnh, nhưng không phải khi tôi chạy nó từ một tập lệnh .cmd. Có suy nghĩ gì không? – marcj

1

Cố gắng:

C:\PrgCmdLine\Unix\echo.exe "%"JAVA_HOME"%" 

Got:

%JAVA_HOME% 

[EDIT] Trên thực tế, công trình C:\PrgCmdLine\Unix\echo.exe ^%JAVA_HOME^% quá, và đơn giản hơn ...

[EDIT 2] Đối với bản ghi: Tôi đã sử dụng tiếng vọng của UnxUtils để có hành vi của một chương trình thuần túy. Được xây dựng trong tiếng vang có một hành vi hơi khác nhau, ít nhất là cho dấu% dấu. bạn

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