如何使用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;
您的"开始"菜单中肯定没有记事本应用程序,那里只有一个快捷方式。通常记事本位于此处:
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""
.我想找到这条路有一些问题。也许将双引号减少到每边一个会有所帮助。