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

使用变量存储路径时Get-ChildItem报错,路径混入当前工作目录的原因

问题原因与解决方案

你碰到的这个问题,核心是给变量$SPath赋值时多套了一层单引号,导致PowerShell解析路径时出了岔子。

为什么会混入D:\DMH\?

PowerShell识别UNC路径的标准开头是\\,但你赋值时给路径套了单引号,变成了'\\MHRZRSEFS501...'。这个带单引号的字符串不再是合法的UNC路径,PowerShell会把它当成相对路径处理,自动把当前工作目录(也就是你启动PowerShell时的D:\DMH\)拼接到这个"相对路径"前面,于是就出现了报错里那种拼接后的错误路径。

正确的解决方法

方法1:去掉多余的单引号,用单引号包裹路径(推荐)

因为你的路径里包含空格和$符号,用单引号可以让PowerShell原样保留这些字符,不会把$解析成变量:

$SPath = '\\MHRZRSEFS501\F$\NewSkies FileShares\FRBatch$\Test\Test.txt'
Get-ChildItem -Path $SPath
Write-Host "SPath =$SPath"

执行后SPath的输出会是不带额外单引号的正确路径,Get-ChildItem也能正常找到文件。

方法2:用双引号包裹并转义$符号

如果习惯用双引号,需要把路径里的$用反引号`转义,避免PowerShell把它们当成变量解析:

$SPath = "\\MHRZRSEFS501\F`$\NewSkies FileShares\FRBatch`$\Test\Test.txt"
Get-ChildItem -Path $SPath

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:37:33