Example process: fsutil.
Very useful link on obtaining and setting fsutil behaviour and properties at this following link:
http://blogs.microsoft.co.il/skepper/2014/07/16/symbolic_link/
Typically contained in the System32 folder: C:\Windows\System32
It is quite simple to do and consists of two main steps:
Step 1: Create Process object and set its StartInfo object accordingly
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "C:\\Windows\\System32\\fsutil.exe",
Arguments = "behavior query SymlinkEvaluation",
UseShellExecute = false, RedirectStandardOutput = true,
CreateNoWindow = true
}
};
Step 2: Start the process and read each line obtained from it:
process.Start();
while (!process.StandardOutput.EndOfStream)
{
var line = process.StandardOutput.ReadLine();
Console.WriteLine(line);
}
Full Code listing:
using System;
using System.Diagnostics;
namespace RunProcess
{
internal class Program
{
private static void Main(string[] args)
{
try
{
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "C:\\Windows\\System32\\fsutil.exe",
Arguments = "behavior query SymlinkEvaluation",
UseShellExecute = false, RedirectStandardOutput = true,
CreateNoWindow = true
}
};
process.Start();
while (!process.StandardOutput.EndOfStream)
{
var line = process.StandardOutput.ReadLine();
Console.WriteLine(line);
}
process.WaitForExit();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
For our example I wanted to see what the SymbolicLinkStatus was for remote -> local etc:
Console output as follows:

Comments
2 responses to “How to run processes and obtain the output in C#”
very cool Andy!
Good one