Configurando o CD do CMD para o diretório em que o lote foi executado

0

Estou tentando criar um script em lote que abrirá um programa em um ambiente diferente (para que eu possa fazer uma versão portátil dele).

Eu uso este set APPDATA=%CD%\data para dizer isso para fazer isso. O problema que estou enfrentando é que recebo o seguinte erro quando o lote é iniciado:

CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory.

Eu quero, em vez disso, use o comando cd para alterá-lo para o diretório batch. Existe uma maneira fácil de fazer isso?

    
por FreeSnow 07.09.2011 / 13:59

2 respostas

1

Se estiver em uma unidade de rede, talvez você ainda tenha problemas, a menos que você mapeie a compra da unidade. Por que não fazer o seguinte?

APPDATA=%~dp0
cd /d %APPDATA%

Ao fazer um cls, você também pode limpar o erro, mas o script é executado a partir de um caminho UNC, você receberá este erro, você terá apenas que mapeá-lo ou remover o erro do CLS.

    
por 07.09.2011 / 16:53
2

Tente colocar isso no lote:

pushd "%~p0" 2> nul
pushd "\%~p0" 2> nul

Se iniciado a partir de uma pasta UNC, a primeira linha falhará, mas a segunda funcionará.

Se iniciado a partir de uma pasta mapeada da unidade, a segunda linha falhará, mas a primeira funcionará.

De qualquer forma, a pasta atual será onde o arquivo de lote está, e você pode mudar as pastas de lá.

Mais tarde, você pode usar cd para mostrar de qual pasta você está trabalhando.

    
por 14.07.2015 / 23:52