Назначьте псевдонимы с помощью FOR в Windows cmd.exe

346
prubini87

Я пытался использовать цикл для создания нескольких псевдонимов без успеха. Я не профессионал, пожалуйста, потерпите меня ... Кто-нибудь знает, что не так в моем коде или как я могу реализовать это в командной строке? Я знаю, как сделать это в PowerShell, но я пытаюсь воспроизвести код для cmd. Вот код:

@ECHO OFF  FOR %%G IN (a,b,c,d,e,f,g,h) DO ( DOSKEY %%GG=cd %%GG:\ ) 

Вот что я получаю в результате запуска макроса:

0
Итак, что вы видите или испытываете с помощью командного файла? Appleoddity 5 лет назад 0
Я только что добавил скриншот. prubini87 5 лет назад 0
обратите внимание, что [командлет Windows ** не ** DOS] (https://superuser.com/q/451432/241386). В DOS такого цикла не существует phuclv 5 лет назад 0

1 ответ на вопрос

2
phuclv

Вы определяете DOSKEY %%GG=cd %%GG:\(с двойным G), поэтому вы должны ввести aG, чтобы перейти на диск aG:(который не является действительной буквой диска). То же самое для других дисков

Кроме того, чтобы изменить текущий диск, вы используете только букву диска вместо cd. Итак, чтобы перейти в текущий каталог на A: просто запустите A:. Однако, если вы хотите принудительно изменить как текущий диск, так и текущий каталог, используйте /Dопцию

Вы должны удалить ненужное Gтам

@ECHO OFF  FOR %%G IN (a,b,c,d,e,f,g,h) DO ( DOSKEY %%G=%%G: rem Or DOSKEY %%G=cd /D %%G: ) 
Ой ... Спасибо большое! Это оно! : D prubini87 5 лет назад 0