如何在批处理文件中只作为管理员运行一行?

时间:2014-04-09 21:23:17

标签: batch-file command-line wireshark runas

这是我的第一个问题,所以在批评任何事情时,请尽量保持建设性。

我正在尝试使用一个批处理(.bat)文件使我的便携式Wireshark工作。这是我目前的代码:

@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窗口,但 sc stop npf 未执行(使用 cmd / k 选项进行检查)。

有人能帮助我找到我的错误吗?

此致 米甲

1 个答案:

答案 0 :(得分: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)命令,因为它可以更快更容易地键入,两个,它看起来更整洁。

你也可能希望做pause>nul这只是我的偏好,所以它并不是那么重要。