如何通过运行命令打开一个完全以环境变量名命名的文件夹?

问题描述 投票:0回答:1

由于我正在开发一个C#.NET应用程序,其中一部分模仿Windows 运转 命令,我正在用它做一些实验。我有一个文件夹,名字正好是 %userdomain% 在...AppdataLocal\Temp文件夹中,我想通过Windows运行命令访问,但它给我的错误是Windows无法找到...Local\Temp\ComputerName。有什么方法可以让我通过Run命令访问这个文件夹吗?

然而在C#.NET中,使用 System.Diagnostics.Process我能够打开相关的文件夹,但是由于'%'是文件夹和文件名的有效字符,因此很难确定用户给出的路径包含一个变量名或文件夹名。因此,如果一直从Environment.GetEnvironmentVariable("");中取值是不明智的。有什么好的方法来区分呢?

有什么建议吗?

c# .net windows environment-variables runcommand
1个回答
0
投票

我的想法是解决这个问题--它们必须被证明是有效的--我目前使用的是Linux机器。

  1. 我不知道如何在Windows区域转义%,这将是最好的解决方案,其他人呢?
  2. 在C#中临时备份环境变量%userdomain%的值,如果可行的话,将这个进程的环境变量设置为"%userdomain%"。并在调用Run命令后,将userdomain环境变量重置为其备份的值(唯一的缺点是,如果其他线程在你的程序中同时使用%userdomain%的话)。
  3. 在C%中定义并设置2个环境变量,比如fakeLeftHalf = "%user "和fakeRightHalf = "domain%",然后用 "yourpath\%fakeLeftHalf%fakeRightHalf%"来调用Run命令。

一个想法成功了吗?

© www.soinside.com 2019 - 2024. All rights reserved.