Objetivo : Emita um comando simples para adicionar o diretório atual à instrução PATH. Em vez de digitar cada golpe agonizante, prefiro chamar um arquivo em lotes, digamos xpath (onde xpath.bat fica em um caminho ativo).
Não funciona : path=%path%;%cd%
não funciona no command.com, nem no lote nem na linha de comando, embora funcione perfeitamente nos sistemas cmd.exe posteriores.
Confuso : Várias outras variáveis ou strings do sistema podem ser manipuladas dessa maneira.
O% CD% (ou CD) está se comportando de maneira diferente.
Ambiente : estou usando o FreeDOS 1.2 no Virtualbox 5.2.22
Essa falha é consistente no MS-DOS 6.22 e também no Vbx 5.2.22
C:\SSH>path
PATH=C:\FDOS\BIN
C:\SSH>set newdir=C:\SSH\CONTRIB
C:\SSH>echo %newdir%
C:\SSH\CONTRIB // success
C:\SSH>path=%path%;%newdir%
C:\SSH>path
PATH=C:\FDOS\BIN;C:\SSH\CONTRIB // success
*** Mas
C:\SSH>path
PATH=C:\FDOS\BIN
C:\SSH>set newdir=%cd%
C:\SSH>echo %newdir%
ECHO is on // unexpected
C:\SSH>path=%path%;%newdir%
C:\SSH>path
PATH=C:\FDOS\BIN;C:\SSH\CONTRIB //unchanged
O "eco está ativado", bem como outras falhas são consistentes com% cd% resolvendo a zero.
Portanto, o CD, como PATH, parece ser um COMANDO cuja saída pode ser capturada avaliando-o como% VARIABLE%, mas essa provavelmente é apenas a aparência desejada. Parece que os dois são fundamentalmente diferentes e o CD não funciona de forma consistente no COMMAND.COM.
Observe que há outra pergunta flutuando por aí com uma solução que funciona bem no cmd.exe. Isto não é isso.