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

PowerShell脚本在ISE中正常运行,在PowerShell中报字符串缺少终止符错误

问题分析与解决

错误原因

问题出在Here-String的结束引号上:你使用的结束标记是中文全角的‘@,而非英文半角的'@。PowerShell ISE对全角符号的兼容性更宽松,会自动将其识别为半角符号;但普通PowerShell控制台严格区分全角/半角字符,因此触发了“String Missing Terminator”错误。

修复后的脚本

Set-Itemproperty -path 'HKCU:\Control Panel\Cursors' -Name 'Arrow' -value 'C:\Windows\cursors\TKT_BLK.cur'

$CSharpSig = @'
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(
                 uint uiAction,
                 uint uiParam,
                 uint pvParam,
                 uint fWinIni);
'@
$CursorRefresh = Add-Type -MemberDefinition $CSharpSig -Name WinAPICall -Namespace SystemParamInfo –PassThru
$CursorRefresh::SystemParametersInfo(0x0057,0,$null,0)

两者的差异说明

PowerShell ISE在处理文本输入时会做自动修正,比如将输入的全角引号转换为半角,或是忽略部分格式细节。而普通PowerShell控制台完全遵循语法规则解析,对字符的半角/全角、格式规范要求更严格,这类细节问题会直接触发语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 01:27:16