Windows CMD执行PowerShell脚本报错:&符号意外,求解决方案
解决CMD中执行PowerShell管道命令报错“& was unexpected at this time.”的问题
在Windows 11命令提示符(CMD)中执行以下命令,试图通过PowerShell脚本j2w-2-tab.ps1将.j2w文件转换为MapInfo TAB文件时:
dir *.j2w | & d:\tempwork\j2w-2-tab.ps1
出现错误提示:& was unexpected at this time.,经排查脚本本身无&符号,问题源于CMD与PowerShell的语法不兼容。
原因分析
&是PowerShell中用于调用脚本/可执行文件的操作符,但CMD无法解析该符号,因此直接在CMD中使用PowerShell语法会触发报错。
解决方法
方式1:切换到PowerShell执行
打开PowerShell窗口,直接运行原命令即可:
dir *.j2w | & d:\tempwork\j2w-2-tab.ps1
方式2:在CMD中通过powershell命令包裹执行逻辑
若必须在CMD环境中操作,需用powershell -Command将整个PowerShell命令包裹起来,命令格式如下:
powershell -Command "dir *.j2w | & 'd:\tempwork\j2w-2-tab.ps1'"
脚本额外优化建议
原脚本生成的TAB文件中,File "jp2"为固定字符串,会导致MapInfo无法正确关联对应的.jp2影像文件。需将该行修改为使用变量$jp2:
将脚本内的:
File "jp2"
替换为:
File "$jp2"
内容的提问来源于stack exchange,提问作者rossnixon
相关产品推荐
相关产品推荐

