Команда CD возвращает текущий каталог, а переменная% CD% возвращает тот же результат в переменной среды:
c:\Temp\test\test1>cd
c:\Temp\test\test1
c:\Temp\test\test1>@echo %cd%
c:\Temp\test\test1
Эта команда повторяет результат команды CD
for /F %f in ('cd') do @echo %f
так что я должен получить
c:\Temp\test\test1
но на самом деле я получаю:
c:\Temp\test\test1>for /F %f in ('cd') do @echo %f
c:\work\Consulting
но использование% CD% дает мне это:
c:\Temp\test\test1>for /F %f in ('@echo %cd%') do @echo %f
c:\Temp\test\test1
Это работало на моей машине, когда я в последний раз тестировал ее несколько месяцев назад (это не часто используемый скрипт).
Я проверил его на другой машине, и он отлично работает там. Поэтому я думаю, что это связано с тем, как я открываю командную строку и устанавливаю рабочий каталог c:\work\Consulting
используя следующий скрипт реестра:
Редактор реестра Windows, версия 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="cd /d C:\\Work\\Consulting"
(К вашему сведению, это необходимо, если вы хотите открыть командную строку с повышенными правами для определенного каталога)
Увы нет!
Изменить: Конечно, у меня есть обходной путь, но мне было интересно, что я сделал, чтобы это произошло.