1

Я пытаюсь создать сокращенный путь к каталогу, который находится во многих каталогах (например, C:\Users ........................ ...............\TestApp\Data\32\TutorialData (80+ символов для% TestAPP%\Data\32\TutorialData).

Я смог сделать это частично с помощью команды setx

setx TestApp "C:\Users\.......................................\TestApp"

Теперь, когда я перехожу к% TestApp%\Data в проводнике, он чудесно открывается, но не распознает путь в диалоге открытия файла других программ. Кроме того, когда проводник перезапускается, переменная исчезает. Я старался

setx TestApp "C:\Users\.......................................\TestApp" /m

Который должен установить его как системную переменную, но тогда он не загружает% TestApp%\Data, потому что он говорит, что не может найти "C:\Users ............... ........................\TestApp /m\Data "

РЕДАКТИРОВАТЬ: (Я вижу эту ошибку только в диалоге открытия файла)

Что мне нужно сделать по-другому, чтобы добиться этого, чтобы он работал в диалоговых окнах с открытыми файлами и продолжал перезагружать компьютер?


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

Тем не менее, я понял, что это не будет выполнять то, что я надеялся в любом случае, потому что в диалоговых окнах открытых файлов% TestApp% по-прежнему разрешает полный путь, который я надеялся сократить (я использую старую программу, я не иметь код для этого, потому что он хранит только пути к файлам в массиве из 80 символов, дополнительные усекаются).

Результирующие вопросы, которые возникают из-за этого, достаточно отличаются от исходного вопроса, который не стоит редактировать. Единственное, что можно было бы дополнить, - это если бы кто-то хотел показать, как сохранить переменную, но это не помогло бы мне лично на данный момент, только потенциальным будущим поисковикам.

2 ответа2

0

Тот факт, что он ищет /m\Data означает, что вы, должно быть, забыли закрыть цитату пути

setx x "c:\foo /m

устанавливает x в "c:\foo /m ", поэтому %x%\data имеет значение "c:\foo /mdata

Вы можете проверить это, посмотрев в разделе «Переменные» на расширенной вкладке sysdm.cpl

0

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

mklink /J C:\TestApp\ C:\..........\TestApp\

Затем перейдите к C:\TestApp\, и вы должны увидеть все, что существует в C:..........\TestApp\

Этот трюк также работает в разных объемах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .