要解决的问题
路径加引号解决的是词法分隔问题,不一定关闭命令自己的通配符解释。文件名含方括号时,优先查看命令是否提供 -LiteralPath。先检查目标条目,再做后续处理,避免操作了多个相似文件。
适用环境
Windows PowerShell 5.1 或 PowerShell 7;示例只读取现有的 PowerShell 可执行文件元信息。
操作步骤与示例
先运行下面的小样本,再把输入替换为自己的资料;保留原始文件副本。
$taskExecutable = (Get-Process -Id $PID).Path
$item = Get-Item -LiteralPath $taskExecutable -ErrorAction Stop
if ($item.PSIsContainer) { throw '预期为文件' }
$item | Select-Object Name,Length
# 对你自己的文件,把路径放在单引号中,例如:
# Get-Item -LiteralPath 'C:\Work Files\report[1].txt'如何判断结果
样例应显示当前 PowerShell 程序文件的名称和大小,不会列出整个目录。注释里的路径只是写法示例,并不要求你创建该目录。确认读取对象正确后,再决定后续工作。
常见问题与排查
如果目标不存在,先检查盘符、相对路径的当前目录以及文件是否被移动。使用外部程序时,参数解析规则可能不同,不能把 PowerShell cmdlet 的 LiteralPath 规则直接套在任意命令上。
适用边界
这不是删除或重命名脚本。涉及移动、删除或覆盖时,需要单独核对解析后的完整路径,并使用对应命令支持的参数。不要通过增加更多引号来猜测通配符行为。