在批处理文件中使用PowerShell脚本有什么好处吗?
我的意思是,如果我有一些可以在其中运行的东西,是否有任何东西可以保证检测PowerShell是否已安装并在批处理文件中使用它(如果是的话)?
SCHTASKS
在两者上的工作方式完全相同。鉴于此,它们之间是否有区别?
答案 0 :(得分:0)
以下代码通过两个进程执行相同的代码:
internal class Program
{
private static void Main()
{
const string COMMAND = @"SCHTASKS /QUERY /XML ONE";
Collection<PSObject> psObjects;
using (var ps = PowerShell.Create())
{
ps.AddScript(COMMAND);
psObjects = ps.Invoke();
}
var process = new Process
{
StartInfo = new ProcessStartInfo
{
UseShellExecute = false,
RedirectStandardOutput = true,
FileName = "cmd.exe",
Arguments = "/C " + COMMAND
}
};
process.Start();
string cmdTasks;
using (var reader = process.StandardOutput)
{
cmdTasks = reader.ReadToEnd();
}
}
}
两种方法的响应对象不同。 Process.Start()
方法返回一个字符串,我必须解析它,而调用PowerShell会给我一组PSObject
个对象。