首页 > 解决方案 > 如何通过运行命令打开一个完全命名为环境变量名称的文件夹?

问题描述

由于我正在开发一个 C# .NET 应用程序,其中一部分模仿 Windows Run命令,因此我正在用它做一些实验。我在 ....Appdata\Local\Temp 文件夹中有一个完全命名为%userdomain%的文件夹,我想通过 Windows 运行命令访问,但它给了我错误,因为 Windows 找不到 ....Local\Temp\ComputerName。有什么办法可以通过运行访问这个文件夹吗?

但是在 C# .NET 中,使用System.Diagnostics.Process,我可以打开相关文件夹,但由于 '%' 是文件夹和文件名的有效字符,因此很难确定用户给出的路径包含变量名或文件夹名。因此从 Environment.GetEnvironmentVariable(""); 中检索值是不明智的。所有的时间。区分的最佳方法是什么?

有什么建议吗?

标签: c#.netwindowsenvironment-variablesruncommand

解决方案


我解决它的想法 - 它们必须被证明有效 - 我目前在 Linux 机器上:

  1. 我不知道如何在 Windows 区域中转义 %,这将是最好的解决方案,还有其他人吗?
  2. 在 C# 中临时备份环境变量 %userdomain% 的值,如果可以,将此进程的环境变量设置为“%userdomain%”。并且在调用 Run 命令后,将 userdomain 环境变量重置为其备份值(如果其他线程在您的程序中同时使用 %userdomain% 则只有缺点)。
  3. 在 C% 中定义和设置 2 个环境变量,例如 fakeLeftHalf = "%user" 和 fakeRightHalf = "domain%" 并使用 "yourpath\%fakeLeftHalf%%fakeRightHalf%" 调用运行命令

一个想法奏效了吗?


推荐阅读