C# 如何通过Windows命令提示符和C在一个字符串中更改两项#
在C#和Windows命令提示符下完全是新手,所以请耐心等待我 这是我第一次编写代码来创建一个可执行文件,用于更改注册表以及Chrome中的首选项 先来点背景知识。与我签约的公司的工程师使用一个名为Cadkey的旧程序,该程序用于查看该公司自40年代以来生产的产品的文件 很多人可能都知道,为了安全起见,Chrome不再允许在浏览器中查看小程序和其他类型的文件,但该公司的大多数工程师宁愿使用Chrome而不是IE 因此,我的任务是让他们能够通过“应用程序链接”打开文件,有些人还将其称为“自定义url协议”,如以下示例所示:C# 如何通过Windows命令提示符和C在一个字符串中更改两项#,c#,command-prompt,C#,Command Prompt,在C#和Windows命令提示符下完全是新手,所以请耐心等待我 这是我第一次编写代码来创建一个可执行文件,用于更改注册表以及Chrome中的首选项 先来点背景知识。与我签约的公司的工程师使用一个名为Cadkey的旧程序,该程序用于查看该公司自40年代以来生产的产品的文件 很多人可能都知道,为了安全起见,Chrome不再允许在浏览器中查看小程序和其他类型的文件,但该公司的大多数工程师宁愿使用Chrome而不是IE 因此,我的任务是让他们能够通过“应用程序链接”打开文件,有些人还将其称为“自定义ur
<a href="cadkey://<some domain>/<some drive>/<some directory>/<some file name>.prt">some file</a>
工程师们有一个小的引导模式,它给了他们下载exe的指令,然后双击exe来安装注册表项并更改Chrome prefs
那有什么问题?该代码将密钥注册到用户的注册表,并更改Chrome首选项文件,最后通知用户该操作成功
问题是某些文件的名称中有空格,这会使Cadkey提示用户找不到该文件。主要是因为“%20”出现在空格处。我猜Cadkey是在urlencoding不是设计的一部分的时候制作的
我试图通过命令提示符更改url,就像从传递给命令提示符的参数中删除字符串“cadkey:”一样:
cmd /V:ON /C \"SET r=%1 & start C:\\CK19\\Ckwin.exe !r:cadkey:=! & !r:%20= !\"
我试过:
cmd /V:ON /C \"SET r=%1 & start C:\\CK19\\Ckwin.exe !r:cadkey:=! | !r:%20= !\"
cmd /V:ON /C \"SET r=%1 & start C:\\CK19\\Ckwin.exe !r:cadkey:=! & !r:%%20= !\"
我试过:
cmd /V:ON /C \"SET r=%1 & start C:\\CK19\\Ckwin.exe !r:cadkey:=! | !r:%20= !\"
cmd /V:ON /C \"SET r=%1 & start C:\\CK19\\Ckwin.exe !r:cadkey:=! & !r:%%20= !\"
我尝试使用另一个var
cmd /V:ON /C \"SET r=%1 & !r:cadkey:=! & SET s=r start C:\\CK19\\Ckwin.exe !s:%20= !\"
虽然该命令成功地替换了字符串“cadkey:”——但我还没有同时替换这两个字符串。我尝试了太多的东西,但我是一个新手,任何帮助都将不胜感激
提前感谢在昨晚与我的老板就此进行了讨论之后,我们终于找到了一个答案,如下所示: 改变
cadkeyCommand.SetValue("", "cmd /V:ON /C \"SET r=%1 & start C:\\CK19\\Ckwin.exe !r:cadkey:=!\"");
致:
结果是字符串“cadkey:”和字符串“%20”都被删除,字符串“%20”被一个空格替换,这导致以下内容被传递到cadkey,在这里您可以看到变量“t”,基本上,在cmd中,应该在路径周围使用双引号,并在其中加空格。它将被windows shell正确识别。但是您已经有了大约
集
。的值是多少!r:cadkey:=代码>?你为什么需要这样的语法?@PavelAnikhouski感谢你的回复,很抱歉回复晚了。我累得都睡着了。为了回答你的问题!r:cadkey:=!从发送到命令提示符的参数中删除字符串“cadkey:”,该参数允许使用cadkey.exe。除非文件名中有空格,否则此选项有效。当文件名中有空格时,Windows会将其替换为“%20”,并且程序Cadkey太旧,无法理解“%20”,导致Cadkey显示提示:“找不到文件”