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

9

Когда я создаю командный файл на моем компьютере для выполнения start c:\Users\________\Whatever\..., он работает на моем компьютере.

Как я могу заставить его работать на чужой машине, так как их имя пользователя не мое имя пользователя?

Konrad
источник

Ответы:

19

Вы можете использовать переменную среды %USERPROFILE%. Это работает с Windows XP и выше и автоматически определяет букву диска и путь к папке профиля текущего пользователя.

start %USERPROFILE%\Whatever

Канадский Люк
источник
9

Вы можете использовать переменные среды Windows . В этом случае вы можете использовать тот %username%, который возвращает имя текущего пользователя.

то есть:

start c:\users\%username%\Whatever

Дополнительно / альтернативно, если вы специально нацелены на папку профиля пользователя ( <drive>:\users\<username>), вы можете использовать %userprofile%переменную, которая будет возвращать полный путь к профилю текущего пользователя, что помогает при нацеливании на более старые ОС, такие как XP (где это <drive>:\document and settings\<username>по умолчанию), или где папка профиля была перемещена на другой диск / место.

то есть:

start %userprofile%\Whatever

Там есть несколько других переменных, которые вы можете найти полезными при написании пакетов, я бы посоветовал просмотреть весь список. :)

Ƭᴇcʜιᴇ007
источник
2
Я бы поддержал голосование, если бы не последние две системы Windows, в которых были сохранены профили пользователей, e:\usersи d:\documents and settings...
user1686
@grawity Я попытался сделать его общим, показав ему список доступных переменных, и не предполагая, что они всегда хотят указывать на каталог профиля пользователя. Но, на мой взгляд, я обновил его, чтобы охватить и переменную% userprofile%.
Ƭᴇcʜιᴇ007
Чувак, ты только что украл мой ответ: P
канадец Лука
Не украден, просто расширил мой ответ, чтобы сделать его более полным. Опять же, я старался избегать упоминания каталога о профиле пользователя изначально, но, очевидно, если я не расскажу и о% userprofile%, то это неправильный ответ. ;)
Ƭᴇcʜιᴇ007
Не волнуйтесь, с языком, торчащим из комментария, это подразумевается как шутка :)
Канадский Лука