Цель: введите простую команду, чтобы добавить текущий каталог в оператор PATH. Вместо того, чтобы вводить каждый мучительный штрих, я бы назвал пакетный файл, скажем, xpath (где xpath.bat находится в активном пути).
Не работает: path=%path%;%cd%
не работает под command.com, ни в пакетном режиме, ни в командной строке, хотя он отлично работает в более поздних системах cmd.exe.
Заблуждение: таким образом можно манипулировать несколькими другими системными переменными или строками.
% CD% (или CD) ведет себя по-другому.
Среда: я использую FreeDOS 1.2 под Virtualbox 5.2.22
Эта ошибка соответствует MS-DOS 6.22 и 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
*** Но
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
"Эхо включено", а также другие сбои согласуются с разрешением% cd% на ноль.
Таким образом, CD, как и PATH, выглядит как КОМАНДА, чей вывод можно перехватить, оценив его как% VARIABLE%, но это, вероятно, только желаемый вид. Похоже, что эти два принципиально разные, и CD не работает последовательно под COMMAND.COM.
ЗАМЕТЬТЕ, что есть еще один вопрос с решением, которое прекрасно работает под cmd.exe. Это не то.