4

Мне нужно изменить каталог с помощью командного файла в PowerShell.

Допустим, командный файл с именем go.bat имеет две строки кода. И я в каталоге q:

   c:
   cd c:\abc\def

Когда я запускаю go.bat , я все еще в q:

5 ответов5

4

Хотя я согласен, что то, что вы делаете, должно работать, вы всегда можете попробовать командлет Powershell "set-location". Это в основном работает так же:

set-location c:\abc\def
2

Пытаться:

   cd /D c:\abc\def

Используйте переключатель /D для изменения текущего диска в дополнение к изменению текущего каталога для диска - хотя я не уверен, почему то, что вы пробовали, не работает ...

Если папка не существует, вы получите сообщение об ошибке:

The system cannot find the path specified.

Вы можете просмотреть справку по команде cd , набрав cd /? ,

1

Вы проверили, что C:\abc\def существует?

На моей машине, начиная с диска E:

  • C:
  • cd C:\windows\system32

отлично работает

1

Когда вы запускаете пакетный файл, PowerShell создает процесс CMD.EXE для его запуска. Если вы измените рабочий каталог внутри процесса CMD.EXE, это не повлияет на текущий рабочий каталог PowerShell. Это по замыслу.

1

Только что столкнулся с этой проблемой, я хотел иметь скрипт для перехода в каталог, который работает в Powershell и CMD.

Я мог бы решить эту проблему, создав сценарий с тем же именем, один - скрипт powershell, а другой - файл bat:

Powershell

Set-Location C:\abc\def

партия

cd C:\abc\def

Допустим, скрипт называется просто "def". Если я наберу def в Powershell, он запустит версию ps1, если я введу его в cmd, он запустит bat. Вы должны иметь дубликаты файлов, но вы можете использовать одну и ту же именованную команду между оболочками.

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