如何使用cmd打开记事本

本文关键字:记事本 cmd 何使用 | 更新日期: 2023-09-27 18:35:18

我想用 CMD 打开记事本,使用 C#,但路径中有一个空格。我知道有很多类似的问题,但我无法得到任何这些解决方案来使用我的示例。我不知道为什么。如果有人想帮忙,将不胜感激。

  System.Diagnostics.Process process = new System.Diagnostics.Process();
  System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
  startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
  startInfo.FileName = "cmd.exe";
  startInfo.Arguments = @"/C START ""C:'Users'Dale'AppData'Roaming'Microsoft'Windows'Start Menu'Programs'Accessories'notepad.exe""";
  process.StartInfo = startInfo;
  process.Start();

没有错误消息,但命令提示符中没有任何反应,并且记事本无法打开。 另一个问题是即使我添加了命令提示符也可见

startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

如何使用cmd打开记事本

您的"开始"菜单中肯定没有记事本应用程序,那里只有一个快捷方式。通常记事本位于此处:

C:''Windows''System32'otepad.exe

可能具有误导性的是,单击"开始"菜单中记事本图标上的"打开文件位置"会将您带到放置快捷方式的位置。但是,您可能会注意到它只是一个快捷方式,因为角落里有小箭头图标。然后,您可以右键单击并再次选择"打开文件位置" - 这次它会将您指向正确的位置。

安全和更好的方法是

string notepad_path = System.Environment.SystemDirectory + "'notepad.exe";

C# 可能忽略了双双引号,即 "。

尝试用反斜杠转义引号,即:

startInfo.Arguments = @"/C start "''"c:''Users''Dale''AppData''Roaming''Microsoft''Windows''Start Menu''Programs''Accessories'otepad.exe''"";

我假设路径和所有正确的路径。

在 C# 中,在字符串之前添加@会处理特殊字符,否则这些字符前面需要一个转义符号 (' )。

@"/C START ""C:'Users'Dale'AppData'Roaming'Microsoft'Windows'Start Menu'Programs'Accessories'notepad.exe"""

这应该扩展到 /C START ""C:'Users'Dale'AppData'Roaming'Microsoft'Windows'Start Menu'Programs'Accessories'notepad.exe"" .我想找到这条路有一些问题。也许将双引号减少到每边一个会有所帮助。