找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 3730|回复: 7

[问题求助] powershell代码怎样获取编译时的C#代码?

[复制链接]
发表于 2025-6-29 23:13:01 | 显示全部楼层 |阅读模式
以前看过文章, 说是powershell在执行时也是编译成C#代码然后执行的, 那 怎样获取编译时的C#代码?  

虽然我可以问ai把powershell转成C#代码, 但是这不够方便, 而且不是百分百成功,

获取到编译时的C#代码, 那不就百分百正确的C#代码吗?
发表于 2025-6-30 10:21:57 | 显示全部楼层
不会吧 ps运行速度练vbs都比不上 比用jit的Python慢得多的多 应该就是解释执行的
 楼主| 发表于 2025-6-30 14:35:09 | 显示全部楼层
回复 2# jyswjjgdwtdtj


    powershell比Python还慢吗?
发表于 2025-6-30 19:33:44 | 显示全部楼层
ps的c#代码是调用c#编译器编译后加载执行的 ,ps除了能用c#代码还可以用vb.net或jscript.net
自己用c#编译器编译下就是了 ,c#的编译器程序就在.net安装文件目录下 ,名字是csc.exe ,vb.net是vbc.exe ,jscript.net是jsc.exe
发表于 2025-7-1 00:34:44 | 显示全部楼层
回复 3# 小白龙


   python只是比编译的慢 有大量程序员不断做优化 python已经比普通解释醒语言快很多
发表于 2025-7-1 01:38:48 | 显示全部楼层
不要把powershell跟python比较,两者定位本就不同,PowerShell is a command-line shell and scripting language, designed especially for system administrators.powershell的目的是面向 系统管理员的,就是说为了管理Windows系统的,相当于Linux的shell;如果要比较,应该跟shell比, python应该跟perl,ruby,rust比;
powershell运行慢的原因猜测:
1.默认加载所有常用的modules,即使你的脚本用不到某个module,它也会加载;
2:它管道处理的是对象,不是字符串;
3:社区不行,没人优化,毕竟是2000年的产品;
4:pwsh还是比较快的;
powershell的优势是远程管理Windows系统,就是WSMan
发表于 2025-7-6 21:13:23 | 显示全部楼层
本帖最后由 jyswjjgdwtdtj 于 2025-7-6 21:18 编辑

回复 6# flashercs


   其实掉速度很大程度上是因为在解释性语言中用对象 用对象就要“反射”一次 不用对象只用装箱拆箱 比如在vbs中如果调用对象的方法要比调用相同的普通方法慢几十倍 而又比内置方法慢很多可能解释ps要先匹配alias 再匹配参数 等等 而ps面向对象和极其面向过程的cmdlet两种语法混合使用 更是需要大量正则字符串匹配
ps本身就是非常畸形的语言 既甩不开batch的历史包袱 追求兼容 又不能像c全盘函数 也不能拥抱.net完全面向对象成正常的面向对象语言
当然这不能解释为什么ps这么慢 大概写解释器的程序员也只是拿到了领导的任务 打心眼不喜欢这么丑陋的语言吧要是我是系统管理员我宁愿把这么多cmdlet换成名义类型的dll写exe去执行 或者封装成com用vbs调用 反正微软让vbs去前段对付js 去后端对付java php 在本地干自动化 也不差多干个活了
发表于 2025-7-6 21:21:43 | 显示全部楼层
回复 1# 小白龙


   c#想调用cmdlet要引入ps的命名空间在字符串匹配再执行 可不是一两个函数 而且ps比c#里dynamic,vb.net里不as,JScript直接var出的类型要慢的多 说实话JScript倒是真的有点像转换成c#再编译的 如果反编译一下可以看出点端倪
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:09 , Processed in 0.018185 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表