PowerShell报错找不到驱动器' C',求问题排查与解决方法
问题原因与解决办法
问题原因
你的.ini文件中TRG项的路径用「分号+空格」分隔(C:\\base\\test\\dest1; C:\\base\\test\\dest2),使用-split ";"拆分后,第二个目标路径会开头带有空格,变成" C:\\base\\test\\dest2"。PowerShell解析路径时,会把开头的空格当成驱动器名的一部分,误以为你要访问名为' C'的驱动器,从而抛出找不到驱动器的错误。
同时,PTN项的BURGERS_A; ALIENS_A拆分后,第二个文件名关键词也会带空格,可能导致匹配不到文件,这个问题也需要一并处理。
解决办法
有两种简单的修复方式,任选其一即可:
方式1:修改拆分规则
直接按「分号+空格」作为分隔符拆分,避免生成带空格的元素:
$partialNames = $iniContent["PTN"] -split "; " $targetDirectories = $iniContent["TRG"] -split "; "
方式2:拆分后统一清理空白
如果不确定分隔符后是否一定有空格,可在拆分后对每个元素调用Trim()方法,去除前后所有空白字符,兼容性更强:
$partialNames = $iniContent["PTN"] -split ";" | ForEach-Object { $_.Trim() } $targetDirectories = $iniContent["TRG"] -split ";" | ForEach-Object { $_.Trim() }
建议后续处理所有从配置文件读取的路径或字符串时,都添加空白清理步骤,避免类似的解析错误。
内容的提问来源于stack exchange,提问作者NanoNet
相关产品推荐
相关产品推荐

