曾经做过测试,本文是本章优秀测试人员的精神,必须定位到原因,不然吃不下饭。其实可以很容易绕过这种问题。

环境:

  PowerShell 5.1.16299.64

  Windows 10

现有代码如下:

  1. # 备份代码
  2. Function backup_code()
  3. {
  4.  
  5. # 异常处理块, 覆盖命令的 ErrorAction, 所以如果 $ErrorActionPreference 为 Continue, 单行命令的 ErrorAction 为 Stop 并不会阻止脚本执行
  6. Trap {
  7.  
  8. Write-Host "Backup code occurred error: $($_.Exception.Message)"
  9. Set-Location $CurrentPath -ErrorAction "SilentlyContinue"
  10. return $False
  11. }
  12. return 2
  13. }

运行脚本一直报一个错误:

说是 Function backup_code 中最后的一个" } "有问题, 意外标记,这是语法错误,但是我查了好久,每条语句执行都没有问题。

最终,我发现删除函数里面的第一行注释,就可以。但是我觉得肯定不是简单的说 Trap 必须函数首行或者注释不能在首行,我不行。所以,我尝试过很多方法:

  • 删除注释: 错误消失
  • 将注释分解为几行:错误仍在
  • 将注释后面一部分删除:错误消失
  • 将注释移到Trap中:错误消失

这简直不可理喻有没有??????????

为了更精确的定位那个问题,我将注释后面的一部分 "单行命令的 ErrorAction 为 Stop 并不会阻止脚本执行" 从后往前各种组合删除和打乱顺序,以及进行逐个字删除。

最后发现:

  当把"并"字删除后,错误消失!!!!!!!!

总结:

  此情况仅在函数中定义 Trap 异常处理块,且在 Trap 块上有""字注释, 才会出现这种问题,俩个条件缺一不可。如果是Try-Catch-Finally等不会出现。

Update:

不是因为并的原因, 而是因为中文字符导致换行符被破坏了,所以,造成了这种问题

至此,我想说:我对此表示无语,"并" 保留对微软追究精神损失费的权利。

【错误记录】PowerShell 超级无语的语法错误(令人怀疑人生)的更多相关文章

  1. 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。

    在使用asp.net core的时候,采用take().skip()分页的时候报如下错误: SqlException: 'OFFSET' 附近有语法错误. 在 FETCH 语句中选项 NEXT 的用法 ...

  2. sql server 数据库 ' ' 附近有语法错误

    昨天做项目时候,遇到标题的问题,代码跟踪把sql 语句 复制出来在数据库执行不了, 然后重新写个一模一样的,然后在 赋值到代码中,还是同样的错误, 就是不知道哪里出现了错误,最后 把 sql 语句写成 ...

  3. ASP.NET Core 部署IIS及 OFFSET 附近有语法错误解决

    今天自己开发了一个订机票的微信公众号,功能基本已经完成,然后想部署到服务器实际测试下.结果部署上去出现各种问题.先安装asp.net core模块,然后发现数据库并不像在开发时一样,执行ef的命令行语 ...

  4. php 语法错误定位 try catch Throwable

    try { } catch (Exception $ex) {      // 计算错误 }  catch (Throwable $ex) { // 语法错误,致命错误 }   Throwable { ...

  5. 让flask在出现语法错误时仍然自动重启

    1问题描述: flask自带的reload只能在语法没毛病的情况下auto_relaod,但是如果有语法错误,进程就会报错退出. 这时修改完语法错误,还得在控制台按“↑”和“enter”重新执行一次p ...

  6. 【Mac系统】之Mysql数据库遇到修改数字密码的问题(SQL语法错误:ERROR 1064 (42000),密码策略等问题:ERROR 1819 (HY000))

    安装完Mysql也进行了第一次初始化密码以及修改密码规则(请参考文章),但是我想后续再改密码,出现了下面几个问题: #SQL语句错误问题 ERROR 1064 (42000): You have an ...

  7. "bower.json 中出现语法错误" 的解决方案之一

    当你用 Visual Studio 2015 Update 3 打开从别处下载的开源项目的时候,如果发现 Bower 提示 "bower.json 中出现语法错误". 请检查一下. ...

  8. uploadify插件Http Error(302)错误记录(MVC)

    由于项目(asp.net MVC)需要做一个附件上传的功能,使用的是jQuery的Uploadify插件的2.1.0版本,上传文件到自己项目指定的文件夹下面.做完之后,在谷歌上测试是正确的,在火狐上报 ...

  9. 关于SubSonic3.0未处理InvalidOperationException异常(关键字TOP附近有语法错误)的处理

    早上在测试程序时,使用了Top这个属性,没想到马上抛出了个“未处理InvalidOperationException异常(关键字'TOP'附近有语法错误)”这个错误提示,见下图: 然后Debug一下, ...

随机推荐

  1. nginx介绍(六) - 通过反向代理实现跨域访问

    前言 跨域访问问题, 相信很多人都遇到过, 并且都用不同的办法去解决过. 方法有很多种, 不一一叙述了. 这里主要使用nginx反向代理来解决跨域问题. 啥是跨域 假如你是百度开发人员, 在百度页面去 ...

  2. python3爬虫——下载unsplash美图到本地

    最近发现一个网站www.unsplash.com ( 没有广告费哈,纯粹觉得不错 ),网页做得很美观,上面也都是一些免费的摄影照片,觉得很好看,就决定利用蹩脚的技能写个爬虫下载图片. 先随意感受一下这 ...

  3. 利用channel在goroutins之间控制同步和传递数据

    在java等代码中,我们查询数据库的操作: sql = "select * from ...."; result = db.query(sql) for(item in resul ...

  4. mysql查看表注释和字段注释的方法

    1.取字段注释 Select COLUMN_NAME 列名, DATA_TYPE 字段类型, COLUMN_COMMENT 字段注释from INFORMATION_SCHEMA.COLUMNSWhe ...

  5. 常量(const)和只读变量(readonly)

    //const修饰的数据叫做 常量 //常量一旦声明常量的值就不能改变. //常量在声明的时候 必须要赋初始值 //C#编译器在编译的时候 声明常量的那句话不见了. //在使用常量的地方就用常量的值代 ...

  6. ECMAScript typeof用法

    typeof 返回变量的类型字符串值 .其中包括 “object”.“number”.“string”.“undefined”.“boolean”. 1.在变量只声明.却不初始化值   Or 在变量没 ...

  7. 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(第二部分)

    Floor Function Time Limit: 10 Seconds      Memory Limit: 65536 KB a, b, c and d are all positive int ...

  8. hadoop的企业优化

    前言: Mapreduce程序的效率的瓶颈在于两点: 计算机性能: CPU.内存.磁盘健康.网络 I/O操作: 数据倾斜 map和reduce数量设置不合理 map的运行时间太长,导致reduc的等待 ...

  9. ArrayList 原码解析

    基于java1.71.ArrayList 是基于数组实现的 通过源码 我们可以知道 ArrayList 提供了三种构造器用于实例化 /** * Constructs an empty list wit ...

  10. html 字符串 生成 pdf 完美解决中文不显示

    //maven <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf< ...