我正在尝试构建UWP应用,我正在努力解决一个问题: 我注意到现在有了启动外部可执行文件的方法,但我可以使用LaunchFile打开文件及其默认应用程序(如此处所提到的https://docs.microsoft.com/en-us/uwp/api/Windows.System.Launcher#Windows_System_Launcher_LaunchFileAsync_Windows_Storage_IStorageFile_)。
它是否也适用于.bat文件?我应该在哪里放置.bat文件。因为我试图给出一个我写的.bat文件的路径,我得到了一个例外。
谢谢!
答案 0 :(得分:2)
它不会起作用。如果你可以在默认情况下获得一些第三方应用程序来打开并处理bat文件,那么可能会运行像cmd或vbscript这样的操作系统。不确定你的目标是什么,但像Autohotkey这样的第三方脚本应用确实有用。
答案 1 :(得分:-1)
从.NET 4开始,有Process和ProcessStartInfo 允许您使用System.Diagnostics命名空间下的类 从C#到Win32应用程序。
public static Task<bool> ExecuteBatchFile(string BatchFilePath, string BatchFileDirectory)
{
try
{
Task<bool> executeBatchFileTask = Task.Run<bool>(() =>
{
bool hasProcessExited = false;
ProcessStartInfo startInfo = new ProcessStartInfo()
{
FileName = BatchFilePath,
CreateNoWindow = false,
UseShellExecute = true,
WindowStyle = ProcessWindowStyle.Normal,
WorkingDirectory = BatchFileDirectory
};
// Start the process with the info we specified.
// Call WaitForExit and then the using-statement will close.
using (System.Diagnostics.Process exeProcess = System.Diagnostics.Process.Start(startInfo))
{
while (!exeProcess.HasExited)
{
//Do nothing
}
hasProcessExited = true;
}
return hasProcessExited;
});
return executeBatchFileTask;
}
catch (Exception ex)
{
throw;
}
}
在代码中调用此方法:
bool hasBatchFileExecuted = await ExecuteBatchFile(BatchFilePath, BatchFilePathDirectory);
创建您自己的批处理文件,如:
1)在记事本中创建一个文本文件,并将其保存为run.bat,保存为类别和所有文件。
2)编写以下代码以执行C#程序/但是您也可以编写自己的命令:
csc someRandomCode.cs
pause
3)保存并退出。