Скажем, мой рабочий стол находится на «F:/Desktop». Почему в командном файле это будет работать:
@echo off
setlocal enabledelayedexpansion
set DesktopFolder=F:\Desktop
cd /
cd !DesktopFolder!
Но это не будет
cd /
cd F:\Desktop
Скажем, мой рабочий стол находится на «F:/Desktop». Почему в командном файле это будет работать:
@echo off
setlocal enabledelayedexpansion
set DesktopFolder=F:\Desktop
cd /
cd !DesktopFolder!
Но это не будет
cd /
cd F:\Desktop
Мартино ответил вам, почему второй не работает.
Наконец, если вы хотите, чтобы cd также менял текущий диск и текущий каталог, вам нужно использовать параметр /d, как в cd /d% DesktopFolder%
Текущий каталог и текущий диск - это разные вещи.
Чтобы увидеть его в действии, откройте командную строку (которая, вероятно, будет начинаться с C:\Users\% username%), введите cd F:\Desktop
и обратите внимание, что вы ничего не изменили. Если после этого вы добавите F:
вы обнаружите, что рабочий каталог на F: уже был изменен на рабочий стол, а не на корневой.
Параметр /d, на который ссылается Мартино, делает оба в одном кадре.