Ao executar um arquivo de lote no Windows 7 com direitos de administrador de um pen drive, como posso obter o caminho do arquivo de volta para o pen drive?

1

Eu tenho um software que está sendo distribuído para vários departamentos para instalação em laptops Windows 7. Eles instalam o software a partir do pen drive e, em seguida, precisam executar um script para configurar corretamente o software.

Como o script está alterando arquivos de registro e de programa, ele requer direitos de administrador. Quando executado como Admin, ele cai na pasta System32 e eu não tenho mais uma maneira fácil de acessar arquivos que precisam ser copiados do pen drive, simplesmente porque eu não sei ao certo qual letra de drive vai usar as várias máquinas. As instalações anteriores estavam no Windows XP e o caminho do arquivo da janela de comando permaneceu na pasta de script.

Eu encontrei perguntas semelhantes aqui e já tentei Relative Paths, mas não consigo encontrar a pasta correta no pen drive ou não consigo encontrar a maneira correta de formatá-la.

    
por Jeremy DeStefano 01.07.2011 / 02:16

3 respostas

3

% ~ dp0 é o caminho que contém o arquivo de lote.

Por exemplo: se o seu script é g: \ scripts \ batch.cmd, então% ~ dp0 é equivalente a g: \ scripts \

Portanto, se todos os seus arquivos estiverem em uma pasta g: \ scripts \ files, você poderá consultá-los com% ~ dp0files \ filename.fileextension

também% ~ d0 seria apenas o drive g: no exemplo acima

    
por 01.07.2011 / 02:23
0

Que tal você escrever o caminho completo para o local em que estava trabalhando em um arquivo de texto temporário - apenas leia esse arquivo como administrador?

Como uma alternativa, talvez você possa definir o rótulo do pen drive como algo único e, em seguida, procurar esse rótulo de unidade quando você eleva para o administrador?

    
por 01.07.2011 / 02:21
0

Uma solução simples de duas linhas aqui no meu blog.

link

@setlocal enableextensions
@cd /d "%~dp0"
    
por 19.04.2014 / 13:59