You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中Start-Process创建含空格路径目录失败求助

带空格路径创建目录的解决方案

你的问题出在多层嵌套调用时的参数引号转义逻辑混乱,导致带空格的路径被拆分为多个参数,无法被正确识别。以下是两种可行的解决方案:

方案一:直接用PowerShell原生命令创建目录(推荐)

避免嵌套调用cmd.exe,直接使用PowerShell的New-Item命令创建目录,参数传递更简洁可靠:

$cred = Get-Credential
$d = "C:\Call Balance"
# 构造PowerShell命令参数数组,自动处理空格路径的转义
$psArgs = @(
    '-noprofile',
    '-command',
    "New-Item -Path `"$d`" -ItemType Directory -Force"
)
$result = (Start-Process powershell.exe -Credential $cred -ArgumentList $psArgs -NoNewWindow -Wait -Passthru).ExitCode
$result

方案二:正确转义参数后调用cmd.exe的mkdir

如果必须依赖cmd.exe的mkdir,需要确保带空格的路径被作为单个参数传递,通过正确的引号转义实现:

$cred = Get-Credential
$d = "C:\Call Balance"
# 先给带空格的路径添加引号,再构造cmd执行命令
$cmdCommand = "mkdir `"$d`""
$psArgs = @(
    '-noprofile',
    '-command',
    "Start-Process cmd.exe -Verb RunAs -ArgumentList '/c', `"$cmdCommand`" -Wait"
)
$result = (Start-Process powershell.exe -Credential $cred -ArgumentList $psArgs -NoNewWindow -Wait -Passthru).ExitCode
$result

核心说明

  • 使用数组传递-ArgumentList参数时,PowerShell会自动处理每个元素的引号转义,避免手动拼接字符串时的多层引号混乱。
  • -Force参数可以确保目录存在时不会报错,直接返回成功状态。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 19:47:07