2014-04-09 6 views
1

Это мой первый вопрос, поэтому, критикуя что-либо, попробуйте быть конструктивным.Как запустить как администратор только одну строку в пакетном файле?

Я пытаюсь сделать мою переносимую версию Wireshark работой с использованием одного пакетного (.bat) файла. Это мой текущий код:

@echo on 
@echo _wireshark is starting_ 
@echo ... 
@echo off 
runas /noprofile /savecred /user:Michal "cmd /c sc stop npf" 
start "" /wait WiresharkPortable.exe 
runas /noprofile /savecred /user:Michal "cmd /c sc stop npf" 
@echo on 
@echo _Thanks for sniffing around_ 
@echo _Bye now. 
@pause 

Существует проблема с RunAs линии, предположительно, они открывают новое окно CMD, но СБН остановить НРП не выполняется (проверено с ЦМД/k опция).

Может ли кто-нибудь помочь мне найти мою ошибку?

С уважением, Michal

+0

Fix ваш вопрос название пожалуйста. Это должен быть вопрос ... – foxidrive

+0

Это было сделано. – moaiddip

+0

'runas/noprofile/savecred/user: Michal" cmd/c pause "' <--- проверьте это, чтобы узнать, что произойдет. – foxidrive

ответ

1

Во-первых, вы действительно не нужно ставить @ перед каждой линии, на самом деле вам это нужно только в самом начале

@ echo off :: rest of code here

Таким образом, вместо того, чтобы печатать @ прежде чем все, я напечатал бы

@echo off 
echo _wireshark is starting_ 
echo ... 
runas /noprofile /savecred /user:Michal "cmd /c sc stop npf" 
start "" /wait WiresharkPortable.exe 
runas /noprofile /savecred /user:Michal "cmd /c sc stop npf" 
echo _Thanks for sniffing around_ 
echo _Bye now. 
pause 

Я хотел бы также удалить любые ненужные @echo on(off) сотрудничества mmands по всему, один, потому что он делает его быстрее и легче набирать, два, он выглядит аккуратно.

Возможно, вы также захотите сделать pause>nul, что является моим предпочтением, поэтому это не так важно во всей честности.

+0

Спасибо за полезные советы. Однако они не решают мою первоначальную проблему. – moaiddip

+0

ой, ладно, ну хотя бы я пробовал :) – benimen16