2011-11-08 27 views
15

Tôi có dưới đây được sử dụng như một tệp lô khởi chạy PowerShell (quá dài để đi qua nhưng nó được sử dụng trong tập lệnh khác).% temp% etc không hoạt động

Dù sao, tôi nhận thấy% systemroot% \ temp và% systemroot% không hoạt động.

Bất kỳ ý tưởng nào về cách khắc phục sự cố này?

%systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Unrestricted -File %SystemRoot%\TEMP\ROFS\testing_script_log.ps1 

Cảm ơn,

+1

Done trên hệ thống của tôi hoạt động tốt. Đó là lỗi bạn có? –

+0

quyền Kitô hữu của bạn .... sự ngu ngốc của tôi ... con đường không chính xác !! Có thể đã làm việc cuối cùng! – lara400

Trả lời

30

Nếu bạn đang thực hiện dòng đó từ PowerShell thay vì từ CMD, bạn có thể sử dụng các biến môi trường PowerShell cú pháp:

PS C:\> & "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe" 
+0

Tôi cũng muốn biết điều này - vì vậy cảm ơn bạn đã trả lời. Lỗi thực tế là đường dẫn không chính xác - điều này đã được khắc phục ngay bây giờ nhưng rất tốt để biết những điều trên. – lara400

+0

Tôi là một người khổng lồ. Tại sao bạn cần "&" ở đầu dòng? – YasharBahman

+0

"&" là chạy lệnh được chỉ định trong nền – phillyslick

11

Bạn có thể sử dụng [Môi trường] :: ExpandEnvironmentVariables để mở rộng các biến môi trường trong một chuỗi theo kiểu cũ.

$s = '%systemroot%\temp' 
[Environment]::ExpandEnvironmentVariables($s) 
+0

Hữu ích với PowerShell 2.0 (Windows 2008) trong đó "$ env.SYSTEMROOT" không hoạt động – Akom

0

Xác minh thành công bằng mã bên dưới C#.

// tập tin vị trí - Biến tài chuỗi filelocation = Environment.GetEnvironmentVariable ("AZURE_FILE_PATH", EnvironmentVariableTarget.User); // vị trí tệp - Biến hệ thống tệp chuỗiLocation = Environment.GetEnvironmentVariable ("AZURE_FILE_PATH", EnvironmentVariableTarget.Machine);

On Powershell kịch bản

& "D:\Visual_Studio_Workspace\AzureUpload\AzureUpload\bin\Debug\AzureUpload.exe" 

AzureUpload.exe - chứa mã C# mã trên như ứng dụng Console (Visual_Studio_Workspace \ AzureUpload \ AzureUpload \ bin \ Debug {.exe tập tin vị trí})

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