要使用相对路径创建快捷方式,请将目标设置为以下内容.
%windir%\system32\cmd.exe /c start your_relpath\app.exe [your_args]
Run Code Online (Sandbox Code Playgroud)
使程序以管理员身份运行也很简单.
Properties > Advanced > Run as administrator
Run Code Online (Sandbox Code Playgroud)
但将两者放在一起并不奏效.当cmd.exe开始为管理员,它失去当前的工作目录,并去%windir%\system32.相对路径从那里开始,这不是预期的.
有没有办法制作一个既相对又以管理员身份运行的快捷方式?
为什么EscapeDataString在.NET 4和4.5之间表现不同?输出是
Uri.EscapeDataString("-_.!~*'()") => "-_.!~*'()"
Uri.EscapeDataString("-_.!~*'()") => "-_.%21~%2A%27%28%29"
默认情况下,EscapeDataString方法将除RFC 2396非保留字符之外的所有字符转换为十六进制表示形式.如果启用了国际资源标识符(IRI)或国际化域名(IDN)解析,则EscapeDataString方法将除RFC 3986非保留字符之外的所有字符转换为其十六进制表示形式.在转义之前,所有Unicode字符都将转换为UTF-8格式.
作为参考,RFC 2396中的未保留字符定义如下:
unreserved = alphanum | mark
mark = "-" | "_" | "." | "!" | "~" | "*" | "'" |
(" | ")"
Run Code Online (Sandbox Code Playgroud)
ALPHA / DIGIT / "-" / "." / "_" / "~"
Run Code Online (Sandbox Code Playgroud)
看起来EscapeDataString的每个字符是否被转义都是大致相同的
is unicode above \x7F
? PERCENT ENCODE
: is a percent symbol
? is an escape char
? LEAVE ALONE
: PERCENT ENCODE …Run Code Online (Sandbox Code Playgroud)