C#:路径环境变量

C#:路径环境变量,c#,path,environment,C#,Path,Environment,我有一个问题,我已经编写了一个代码,将批处理文件安装到注册表和“高级设置”下的路径中,这样就可以在右键单击菜单下使用它 它会一直工作,直到我点击这个右键点击的项目。在那之后,它只显示一个窗口一毫秒(我不知道是哪一个),什么都没有发生 批处理文件正在工作(我测试了它)。我还检查了注册表项(它是100%正确的,就像我手动操作时一样)。所以唯一剩下的就是高级系统设置下的路径 首先是守则: Environment.SetEnvironmentVariable( "PATH", Envi

我有一个问题,我已经编写了一个代码,将批处理文件安装到注册表和“高级设置”下的路径中,这样就可以在右键单击菜单下使用它

它会一直工作,直到我点击这个右键点击的项目。在那之后,它只显示一个窗口一毫秒(我不知道是哪一个),什么都没有发生

批处理文件正在工作(我测试了它)。我还检查了注册表项(它是100%正确的,就像我手动操作时一样)。所以唯一剩下的就是高级系统设置下的路径

首先是守则:

Environment.SetEnvironmentVariable(
    "PATH", 
    Environment.GetEnvironmentVariable("PATH") + ";" + 
        Path.GetPathRoot(Environment.SystemDirectory) + "FastAndDelete\\",
    EnvironmentVariableTarget.Machine);**

RegistryKey reg = Registry
    .ClassesRoot.OpenSubKey("Directory", true)
    .OpenSubKey("shell", true);
reg.CreateSubKey("FastAndDelete");
reg.OpenSubKey("FastAndDelete", true)
    .CreateSubKey("command")
    .SetValue("", "cmd /c " + '“' + "cd %1 && fastdel.bat" + '”');
reg.Close();
我也试过了

Environment.SetEnvironmentVariable(
    "PATH", 
    Environment.GetEnvironmentVariable("PATH") + ";" + 
        Path.GetPathRoot(Environment.SystemDirectory) + 
        "FastAndDelete\\;", 
    EnvironmentVariableTarget.Machine);

我一开始也试过不带“;”的,但没有任何帮助


有人知道我做错了什么吗?

你确定它不起作用吗?如果您正在运行的是一个bat文件,它将在运行时显示一个命令窗口,然后关闭,因此如果执行速度很快,您将看到您正在描述的效果出于兴趣为什么是批处理文件而不在c#中执行删除操作?您在注册表中输入的智能引号字符看起来可疑“cmd/c”+”“+…+”。尝试用哑引号“cmd/c”+“+…+”“‘是的,你在哪里?/“cmd/c”+”“+…+””。尝试用哑引号“cmd/c”+“+…+””替换它们“//。我从网站上复制了这段代码,只是添加了nessecary代码,以便打印出来。所以这是网站上的错误…我看了几个小时这段代码,想我做错了什么-非常感谢much@Joe我怎样才能对你的评论投赞成票?
Environment.SetEnvironmentVariable(
    "PATH", 
    Environment.GetEnvironmentVariable("PATH") + ";" + 
        Path.GetPathRoot(Environment.SystemDirectory) + 
        "FastAndDelete\\fastdel.bat", 
    EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable(
    "PATH", 
    Environment.GetEnvironmentVariable("PATH") + ";" + 
        Path.GetPathRoot(Environment.SystemDirectory) + 
        "FastAndDelete\\fastdel.bat;", 
    EnvironmentVariableTarget.Machine);