私はbatファイルを介してc#プログラムにいくつかのDNSレコードを追加したいので、batファイルにこれらの行を書きました:
set servername=%1
set siteaddress=%2
"C:\Windows\System32\dnscmd.exe" %servername% /zoneadd %siteaddress% /primary /file %siteaddress%.dns
そして、C# で次の行を書きました。
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.WorkingDirectory = Application.StartupPath;
p.StartInfo.FileName = General.DnsBatPath;
p.StartInfo.Arguments = string.Format("{0} {1}", General.DnsServerName, txtSiteAddress.Text);
p.Start();
p.WaitForExit();
「dnscmd.exeは内部または外部コマンドとして認識されていません...」というエラーが表示されますが、batファイルを手動で(C#の外で)実行すると、すべて問題ありません。
何が起こったのかを確認するために C# コードを変更しました
Process.Start(@"C:\Windows\System32\dnscmd.exe");
「認識されていません...」というエラーが表示されますが、「C:\Windows\System32」に dnscmd.exe が表示されます。別のことを確認するために、C# コードを再度変更しました。
Process.Start(@"C:\Windows\System32\cmd.exe");
その後、CMDウィンドウが開きます??? 何か案が?