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

C:\Program Files\Steam\userdata\%STEAMID%\config\shortcuts.vdf

Я хотел бы знать, есть ли подстановочный знак или другая переменная, которую я могу использовать в пакетном скрипте, который будет «автоматически определять» или открывать этот путь, так как он будет отличаться для каждого пользователя. Любая помощь с благодарностью.

1 ответ1

2

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

Вы можете установить две переменные, одна из которых является первой частью полного пути непосредственно перед точкой, в которой изменяется папка, в которой находится переменная (т.е. C:\Program Files\Steam\userdata), а вторая - второй частью пути сразу после переменная с именем папка (то есть config).

Затем можно использовать два цикла FOR /D, первый из которых ссылается на первую переменную пути части с подстановочным знаком после нее, а второй - для добавления второй части, ссылающейся на переменную пути второй части. Это будет динамически автоматически заполнять переменные с именами папок между первой и второй частями пути, чтобы вы могли перебирать команды соответственно.


Примечание. Сохраните приведенную ниже логику в текстовом документе, но переименуйте его, чтобы получить расширение файла .cmd или .bat , а затем дважды щелкните его, чтобы запустить.

Пакетный скрипт

@ECHO ON
SET SRC1=C:\Program Files\Steam\userdata
SET SRC2=config

FOR /D %%X IN ("%SRC1%\*") DO FOR /D %%Y IN ("%%X\%SRC2%\shortcuts.vdf") DO START "" "Notepad++.exe" "%%~Y"
::PAUSE
EXIT

Дополнительные ресурсы

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