【发布时间】:2026-01-26 20:50:02
【问题描述】:
我有 C# 程序,它找到插入的 USB 的驱动器号并将其分配给变量 _usbDriveLetter。
我需要将_usbDriveLetter 的值传递给一个批处理文件,该批处理文件进一步执行CHKDSK _usbDriveLetter 命令。
我有以下代码来传递_usbDriveLetter 的值并执行批处理文件。
string _usbDriveLetter = @"F:\"; //For testing here
string MyBatchFile = @"<FILEPATH>\chkdsk.cmd";
ProcessStartInfo proc = new ProcessStartInfo();
proc.CreateNoWindow = true;
proc.FileName = MyBatchFile;
proc.Arguments = usbDriveLetter ;
Process.Start(proc);
问题:一旦代码到达执行批处理的行,就会出现以下窗口,允许 CMD.exe 启动。如何在后台/静默中执行(至少无需任何用户交互)。
【问题讨论】:
-
要么禁用 UAC,要么以高权限启动主程序
-
我已经在 .cmd 文件中提升了用户权限。无法以提升的权限运行我的应用程序。
-
如果打开 UAC,它需要用户交互,这就是重点。你总会得到这样的提示。
-
@lordkain:问题不在于控制台窗口。我的问题是弹出窗口,您必须在其中回复是/否,如屏幕截图所示。
标签: c# batch-file