Что означает «C:2» в строке пути Windows?

Что означает «C:2» в строке пути Windows?

Я получил это всплывающее окно от брандмауэра Windows. Что такое "C:2\" в пути? Настоящий путьD:\Steam\SteamApps\common\...

Всплывающее диалоговое окно брандмауэра Windows

Я попробовал cd /d C:2\в cmd и получил"The system cannot find the path specified."

Я также попробовал cd C:2\в Powershell и получил"Set-Location : Cannot find path 'C:\2\' because it does not exist."

Так каким же образом «C:2\" может быть сокращением для «D:\"?

Обновлять:

Я попробовал поискать C:2в реестре, как предложил @Tyson. При поиске C:2в реестре с отключенным параметром «Сопоставлять только всю строку» выдается много нерелевантных результатов, а с включенным параметром «Сопоставлять только всю строку» — ни одного. Тем не менее, я нашел ключ, он находится в , HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\FirewallRulesи его значение равно v2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=17|Profile=Private|App=C:2\steam\steamapps\common\sonic & all-stars racing transformed\asn_app_pcdx9_final.exe|Name=asn_app_pcdx9_final.exe|Desc=asn_app_pcdx9_final.exe|Defer=User|. Есть правило для D:\Steam\SteamApps\common\Sonic & All-Stars Racing Transformed\ASN_App_PcDx9_Final.exeв Windows Firewall with Advanced Security > Inbound Rules. Я также нашел правило для Team Fortress 2, которое находится v2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Private|App=C:0\steam\steamapps\common\team fortress 2\hl2.exe|Name=hl2.exe|Desc=hl2.exe|Defer=User|в реестре и D:\Steam\SteamApps\common\Team Fortress 2\hl2.exeв списке правил брандмауэра Windows. Другие игры, установленные в , D:\Steam\...имеют D:\и в реестре, и в правилах брандмауэра Windows. Так что, вероятно, Steam создает псевдонимы для дисков, отличных от C:\, но я хотел бы знать, как это работает, и почему в одном случае это было C:2\, в другом C:0\, а в третьем просто D:\. Я думаю, это, вероятно, потому, что это внешний жесткий диск, и иногда Steam не мог найти его в момент пробуждения Windows после сна, поэтому Steam назначал ему разные псевдонимы.

Но что на самом деле заставляет эти псевдонимы работать? Нет папок с названием 2или 0, это простоD:\Steam\...

решение1

#1 РЕКЛАМА

Может ли это быть файл с именем C, который на самом деле является связующим звеном (символической ссылкой), доступным из PATH приложения, и для которого существует альтернативный поток NTFS?ADS (альтернативный поток данных)так что C:1, C:2, C:3 и т. д. будут преобразованы в другое место? Поскольку Steam был ограничен установкой на один диск большую часть своего существования, возможно, это был хакерский обходной путь для поддержки перемещения игр?

Главная проблема: Я не знаю, работал ли ADS с папками, ярлыками, ссылками или соединениями. Однако, если бы он это делал, это было бы довольно близко к этому синтаксису.

#2 Относительный путь

По ссылке, опубликованной KingZoingo, мы видим, что C: может быть текущим относительным путем:

"C:tempdir\tmp.txt" refers to a file in a subdirectory to the current directory on drive C.

Поскольку допустимо называть папку или соединение «2», это также приведет к такому синтаксису.

Главная проблема: Я ожидал, что брандмауэр покажет фактический абсолютный путь.

решение2

Трудно сказать, не видя, что на самом деле находится в памяти запущенного процесса.

Вообще говоря, программа может делать много дерьма со своей собственной памятью, включая изменение или удаление "Командной строки", с которой она была запущена. Или запуск дочернего процесса. (Насколько я помню, Steam проделывает большую работу при каждом запуске, проверяя наличие обновлений и перезапускаясь снова и снова, пока все это не потеряет всякий смысл.)

Короче говоря: даже если сам синтаксис этой строки несколько "законен", реальность может быть какой угодно. Не может быть однозначного ответа, пока кто-то с лучшими инструментами не столкнется с той же проблемой и не исследует ее лично.

решение3

Я думаю, что неявный вопрос здесь в том, является ли c:2\fooэто законным в Windows. Google здесь бесполезен, потому что строки поиска слишком распространены. Но MSDN полезен и подтверждает, что это не так. Смотрите их страницуздесь. Так что это еще один аргумент в пользу того, что ваш клиент Steam строчит над записью. Возможно, он пытается высказать вам свое мнение об игре :)

Связанный контент