Мне нужно изменить каталог с помощью командного файла в PowerShell.
Допустим, командный файл с именем go.bat имеет две строки кода. И я в каталоге q:
c:
cd c:\abc\def
Когда я запускаю go.bat
, я все еще в q:
Мне нужно изменить каталог с помощью командного файла в PowerShell.
Допустим, командный файл с именем go.bat имеет две строки кода. И я в каталоге q:
c:
cd c:\abc\def
Когда я запускаю go.bat
, я все еще в q:
Хотя я согласен, что то, что вы делаете, должно работать, вы всегда можете попробовать командлет Powershell "set-location". Это в основном работает так же:
set-location c:\abc\def
Пытаться:
cd /D c:\abc\def
Используйте переключатель /D для изменения текущего диска в дополнение к изменению текущего каталога для диска - хотя я не уверен, почему то, что вы пробовали, не работает ...
Если папка не существует, вы получите сообщение об ошибке:
The system cannot find the path specified.
Вы можете просмотреть справку по команде cd
, набрав cd /?
,
Вы проверили, что C:\abc\def существует?
На моей машине, начиная с диска E:
отлично работает
Когда вы запускаете пакетный файл, PowerShell создает процесс CMD.EXE для его запуска. Если вы измените рабочий каталог внутри процесса CMD.EXE, это не повлияет на текущий рабочий каталог PowerShell. Это по замыслу.
Только что столкнулся с этой проблемой, я хотел иметь скрипт для перехода в каталог, который работает в Powershell и CMD.
Я мог бы решить эту проблему, создав сценарий с тем же именем, один - скрипт powershell, а другой - файл bat:
Powershell
Set-Location C:\abc\def
партия
cd C:\abc\def
Допустим, скрипт называется просто "def". Если я наберу def в Powershell, он запустит версию ps1, если я введу его в cmd, он запустит bat. Вы должны иметь дубликаты файлов, но вы можете использовать одну и ту же именованную команду между оболочками.