Цель: введите простую команду, чтобы добавить текущий каталог в оператор 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. Это не то.

1 ответ1

1

ratburgerian. Просто попробуйте использовать небольшую утилиту для DOS, такую как PATHA.COM или любую другую. Вот его синтаксис:

PATHA [text or /c] [ /f /d /e /b /o ]
PATHA предоставляет различные способы изменить текущий путь.

PATHA : показать текущий путь.
PATHA [text] : Добавить каталог (ы) [текст] к текущему пути.

    ОПЦИИ
  • `[текст]`: один каталог (например, c:\DOS) или несколько каталогов, разделенных; 's (т.е. c:\; c:\dos).
  • /c: использовать текущий рабочий каталог как [текст].
  • /b: добавить в начало пути.
  • /d: удалить из пути.
  • /e: Изменить полученный путь перед изменением.
  • /o: Переопределить проверку, если каталог существует.
  • /f: заменить путь на путь в файле [текст] или из \autoexec.bat, если [текст] не введен.
    Note: options may be combined. (i.e. PATHA /c /e).  

Copyright 1992 HGB Enterprises, Все права защищены. Версия 1.1

Я использую версию:

patha .com 14112 15-04-1992 19:39 "patha.com"

Это работает с моими настоящими ПК с DOS (M $ 6,22 и Novell 7,15).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .