Como faço para que um arquivo em lotes possa ser executado em outros computadores

9

Quando crio um arquivo em lotes no meu computador para executar start c:\Users\________\Whatever\..., ele funciona na minha máquina.

Como posso fazê-lo funcionar na máquina de outra pessoa, já que o nome de usuário não é o meu?

Konrad
fonte

Respostas:

19

Você pode usar a variável ambiental %USERPROFILE%. Isso funciona no Windows XP e depois, e detecta automaticamente a letra da unidade e o caminho da pasta para a pasta de perfil do usuário atual.

start %USERPROFILE%\Whatever

Canadian Luke
fonte
9

Você pode usar as variáveis ​​de ambiente do Windows . Um que você poderia usar nesse caso seria %username%, que retorna o nome do usuário atual.

ou seja:

start c:\users\%username%\Whatever

Além disso / alternativamente, se você estiver buscando especificamente a pasta de perfil do usuário ( <drive>:\users\<username>), poderá usar a %userprofile%variável, que retornará o caminho completo para o perfil do usuário atual, o que ajuda ao direcionar sistemas operacionais mais antigos, como o XP (onde é <drive>:\document and settings\<username>por padrão), ou onde a pasta do perfil foi movida para uma unidade / local diferente.

ou seja:

start %userprofile%\Whatever

Existem várias outras variáveis ​​que você pode achar úteis para escrever lotes, aconselho ler a lista inteira. :)

Ƭᴇcʜιᴇ007
fonte
2
Eu upvote se não fosse para os meus dois últimos sistemas Windows ter mantido os perfis de usuário no e:\userse d:\documents and settings...
user1686
@rawrawity Tentei mantê-lo genérico, mostrando-lhe a lista de variáveis ​​disponíveis, e não assumindo que elas sempre quisessem direcionar o diretório de perfil do usuário. Mas ei que ponto, por isso, atualizei-o para cobrir também a variável% userprofile%.
Ƭᴇcʜιᴇ007
Cara, você acabou de roubar minha resposta: P
Canadian Luke
Não roubado, apenas expandi minha resposta para torná-la mais completa. Novamente, tentei evitar explicitar o diretório de perfil do usuário originalmente, mas, aparentemente, se não cobrir% userprofile% também, não será uma resposta 'correta'. ;)
Ƭᴇcʜιᴇ007
Não se preocupe, com a língua de fora no comentário, que está destinado como uma brincadeira :)
canadense Luke