现在 PowerShell 是不是没有什么用?

2022-03-05 13:53:33 +08:00
 fengsien1999

是不是掌握 Linux 的 Shell 就可以了?

12872 次点击
所在节点    PowerShell
77 条回复
UnknownR
2022-03-05 22:01:22 +08:00
@Tumblr
巧了么不是,请问有兴趣聊一下嘛,tg 是 Q29ybko= (base64)
zhuangzhuang1988
2022-03-05 22:49:47 +08:00
可以调试+自动补全 就比被的 shell 好很多了
ysc3839
2022-03-05 23:04:12 +08:00
个人认为用作交互式 shell 不好用,但是写脚本还是有用的
twl007
2022-03-05 23:05:53 +08:00
如果你要是打算去 MS 工作 还是有用的 如果平时还是 Linuz 多 那可能真没啥用😑
jdjingdian
2022-03-05 23:07:39 +08:00
powershell 我觉得不好用,但是有些时候是有用的
比如我要给 ESXi 的安装镜像封装一些官方没有的驱动,就可以用 powershell 的脚本来给镜像打驱动
VanceKing
2022-03-05 23:16:28 +08:00
在 Windows 上用命令行还是很方便
fengsien1999
2022-03-05 23:17:31 +08:00
是不是国内除了微软自己,Windows 服务器的岗很少?你司的岗是在哪里发布的 工作地点在哪里?
fengsien1999
2022-03-05 23:28:42 +08:00
@VanceKing 在 windows 上一般用 cmd 。去年 11 月看一本书《笨办法学 Python3 》,书中用 PowerShell 作为 CLI ,但是也就用到讲 PowerShell 的一本书中的百分之二、三。其余时间没用过 PowerShell
wittyfans
2022-03-05 23:45:31 +08:00
以前做运维的时候,用 powershell + pdq 自动部署软件,自动卸载重装用户软件或者改配置什么的太香了。
kenvix
2022-03-06 00:20:54 +08:00
你知道许多 windows api 只提供 powershell 接口吗
germain
2022-03-06 00:31:46 +08:00
搞得好像只有在 Microsoft 工作才用 PowerShell 一样😂
darklights
2022-03-06 00:34:09 +08:00
如果是面向工资编程,完全没必要主动去学。
如果是需求导向,可以花少许时间学一学语法和常用命令,做一些任务比通用脚本方便。
个人评价的话,至少对我这种不用 Linux 也不经常玩小黑窗的,PowerShel 比隔壁的鬼画符易学易写,会一些基础后,基本上可以靠文档和智能提示,边摸索边解决问题。当然,比自家的 bat 好一百倍。
Osk
2022-03-06 00:50:51 +08:00
powershell 背靠 .net, 强大, 补全强大, 但是那语法真的是... 奇怪.

Windows 上 powershell 是真的强, 系统管理等用途简直是神器.

我自己用 powershell 偶尔写一些小工具, 比如一键设置针对某个程序的防火墙规则什么的.
有段时间我要用 hyper-v 来测试虚拟机, 用 powershell 做了个脚本一键克隆虚拟机模板 (一个准备好的 vhdx + json 记录模板信息), 用起来很方便了.


不过就算如此, 我还是想说 powershell 语言语法本身没有啥非用不可的特性, 我用它的原因很大一部分是它背靠 .net, 一堆 api 和 cmdlet 可以直接调用, 如果没有这些, 谁用它...
也就是说某种意义上的生态良好.


另外, 想对 powershell 和 .net 的差评就是, 不能 portable:
写个 .net 工具, 结果 Win 7 带 .net 3.5, Win 8+ 带 4.0+, 就很迷茫. 对于运维中来说, 很糟糕, 你不想现场给破电脑部署 .net 3 或者 .net 4.

powershell 也是, 写个小脚本, 好强大呀, 几行就搞定了, 结果 Win 7 一跑, 哦豁, ps 版本过低, 这个 cmdlet 没有, 那个也没有. 用 Win 7 的 ps 版本做基础开发? 算了, 还是 cmd 或者 python 吧.

有时候真的不介意最终 exe/dll 文件很大带上运行时库, 但很介意需要运行时装这装那.
lonewolfakela
2022-03-06 00:56:40 +08:00
@Osk “有时候真的不介意最终 exe/dll 文件很大带上运行时库, 但很介意需要运行时装这装那.”
呃,所以 .Net 6 和 PowerShell 7 欢迎您?
dcsuibian
2022-03-06 01:09:52 +08:00
值得学,毕竟 windows 还有 74%的市场占有率呢
snw
2022-03-06 02:59:37 +08:00
不只是运维,我个人电脑也会用到 powershell ,因为 Win10 的设置太残废了,曾经强大的控制面板也被祸祸到半残。

不过我也遇到过设置面板里有的功能却找不到 powershell 对应命令,虽然理论上肯定是有的。
BrettD
2022-03-06 03:29:47 +08:00
@fengsien1999 银行行业里 Windows 技术栈的使用还是不少的,其他传统行业或者 2B 业务估计也是
20150517
2022-03-06 07:01:26 +08:00
这恶心的语法看了就不想用
g00001
2022-03-06 07:19:49 +08:00
有些简单的事搞太复杂了也不一定好,
就像 GIF 截个屏吧,.Net 写的 ScreenToGif 一个 EXE 文件 158 MB ,复制个 GIF 都不行。

而 aardio 写的 Gif123 就几百 KB ,
一键复制 GIF ,可以粘贴到其他程序里不会变空白,变静态图像、无效图像。

如果不习惯 PowerShell ,
可以试试 aardio 里调用 PowerShell 会比较轻便。

一、aardio 导入 PowerShell Cmdlet 直接使用(内存嵌入、免安装):

import dotNet;
Cmdlets = dotNet.loadFile($"\PowerShell\AudioDeviceCmdlets.dll");
CoreAudioApi = Cmdlets.import("CoreAudioApi");
var mmDeviceEnumerator = CoreAudioApi.MMDeviceEnumerator()

二、aardio 执行 PowerShell 命令

import dotNet.ps;
var result = dotNet.ps.command("Get-Command",{Name="*Process"});

三、aardio 通过管道调用 PowerShell

import process.popen;
var prcs = process.popen.ps(`-Command "& {Get-Command -Name *Process}"`);
var result = prcs.read(-1);
imycc
2022-03-06 08:22:55 +08:00
搞 windows 服务器维护,或者在自己电脑上折腾些小玩意的时候很有用。做一些系统配置,可以直接用 powershell 一两条命令搞定,微软官网的文档也算全面,能很方便搜到。如果用 python 做,不一定有库支持,或者实现方式比较怪。

powershell 能调用.net 类库,能写非常复杂的功能,不过我断断续续用了一两年,也没用多深入。当面对复杂需求的时候,更倾向于将具体跟系统交互的部分写成 ps1 脚本,然后用 python 调用它。
在学习新技能方面我觉得“够用就好”,根据工作需要来。我们都是一块砖,那里需要往哪搬

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/838173

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX