Приветствовать !
Сначала я хочу использовать PowerShell для создания cmd и поместить в него какую-нибудь команду
[CmdletBinding()]
param (
[Parameter()]
[string]
$ParameterName
)
cmd /c "start cmd /k " $ParameterName
Это работает хорошо, когда я ввожу какое-то приглашение без пробела & 'C:\ex-sys\Program files\dre\dre.ps1' tasklist
, но когда приглашение с пробелом, например &
'C:\ex-sys\Program files\dre\dre.ps1' 'F:\git hub\yt-dlp\yt-dlp (27).exe'
Это выводится в cmd
'F:\git' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Что означает, что «F:\git» не является командой или какой-либо запускаемой летучей мышью. Очевидно, cmd пропускает мою цитату в PowerShell, так что я все равно могу решить эту проблему
1 ответ
Следующий ответ хорошо работает в сценарии. Если вы хотите добавить параметр в командной строке с помощью & 'C:\ex-sys\Program files\dre\dre.ps1' '"F:\git hub\yt-dlp\yt-dlp (27).exe" --help'
, заключите параметр в двойные кавычки
Похожие вопросы
Новые вопросы
powershell
PowerShell - это кроссплатформенная утилита командной строки и сценариев от Microsoft. Используйте этот тег только для вопросов о написании и выполнении сценариев PowerShell. Вопросы программирования, относящиеся к кроссплатформенной версии PowerShell Core (Windows, macOS и Linux), должны быть помечены [powershell-core]. Вопросы о системном администрировании следует задавать в случае сбоя суперпользователя или сервера.
"$ParameterName"
.cmd /c "start cmd /k "$ParameterName""
). Почему бы просто не использоватьcmd /k "$ParameterName"
cmd /k
выполняется синхронно, в том же окне, т. е. берет на себя интерактивный сеанс PowerShell. Я предполагаю, что цель состоит в том, чтобы запустить интерактивный сеансcmd.exe
асинхронно в новом окне.