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

14

Я получил это всплывающее окно от брандмауэра 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\...

HAL 9000
источник
3
Если бы я рискнул догадаться. По какой-то причине Steam сообщил о неверном местоположении, C: 2 \ - это синтаксис, специфичный для steam.
Ramhound
3
Технически это правильный путь. Он называет 2подкаталог в текущем рабочем каталоге диска C. Конечно, если диск CWD на диске C не имеет такого подкаталога, вы не можете записать на него компакт-диск.
MSalters
Существует ли D: как отдельный физический жесткий диск или как раздел системного диска?
Тайсон
@ Тайсон: отдельный физический диск.
HAL 9000
2
которая подхватывает одну из моих теорий ... Если ваш комфортный уровень реестра позволяет, попробуйте поискать в реестре `C: 2`
Tyson

Ответы:

2

# 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", это также приведет к этому синтаксису.

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

MTONE
источник
+1 за относительный путь. Хотя это кажется неправильным. Предоставляются фактические пути, включая D: \ Steam \ SteamApps \ common \, поэтому подкаталог с именем 2, по-видимому, не является его частью. Тем не менее, ваш ответ дает хорошее мышление, и идея полезна для людей, поэтому ваш ответ будет полезен (даже если он не правильный).
TOOGAM
0

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

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

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

AnrDaemon
источник
0

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

AlwaysLearning
источник
По вашей ссылке: «C: tempdir \ tmp.txt относится к файлу в подкаталоге текущего каталога на диске C.» Если tempdir называется «2», это будет допустимый относительный путь. Однако удивительно, что брандмауэр не показывает абсолютный путь.
Mtone
Отличное место. Да, это, безусловно, возможно.
AlwaysLearning