1
kokutou 2020-04-10 07:05:04 +08:00 via Android
DOS 本来就是用作针对文件的操作系统嘛。。。Windows 的 cmd 发扬光大了,扩充了不少功能。。。
现在建议转 PowerShell 。。。也挺强 |
2
cmdOptionKana 2020-04-10 07:28:18 +08:00 2
现在 powershell 可能是最强的 shell 了,好用到炸裂,而且跨平台,Linux 下也能用。
|
3
Davic1 2020-04-10 08:19:37 +08:00
@cmdOptionKana 喔? 有没有 powershell 功能特性介绍的页面推荐一下? 想具体了解一下优势在啥地方~
|
4
Mithril 2020-04-10 08:47:46 +08:00
|
6
Osk 2020-04-10 09:13:10 +08:00
@Mithril powershell 用起来确实 6, 管道传递对象这个设计感觉很方便...
最大的痛就是和 .Net 好像有绑定, 比如我在 Windows 10 最新版上写脚本, 有不少可用的新 commandlet, 结果在 Windows 7 上一测试啥都用不了... 然后 powershell 又不能像其它脚本语言那样把运行时 /解释器和脚本打包. |
7
cmdOptionKana 2020-04-10 09:18:03 +08:00 1
@Davic1 具体我也不是很懂,最近安装了跨平台的 powershell 7, 发现它很有诚意,ls, ps 等命令都提供了,明显照顾 linux 用户,搜索命令历史的快捷键也改成了 Ctrl+R,日常的简单操作已经与 bash 无异。
另外,powershell 不仅命令可以自动补全,连参数都可以自动补全。 在脚本编程方面,由于天生面向对象并且得到微软的支持不断发展迭代,现在已经非常先进,比如连 null 操作符都有了(就是那些问号操作符 ??, ??=, ?. 之类的,方便 null 相关操作) 具体的最新特性(超强!)请看这里 https://docs.microsoft.com/zh-cn/powershell/scripting/whats-new/what-s-new-in-powershell-70?view=powershell-7 基本理念说明请看这里 https://docs.microsoft.com/zh-cn/powershell/scripting/overview?view=powershell-7 |
8
cmdOptionKana 2020-04-10 09:19:26 +08:00
还有,它开源,提供了各大 Linux 发行版的二进制文件,提供中文文档(这点也很赞)。
|
9
Mithril 2020-04-10 09:27:07 +08:00 1
@Osk Windows 7 带的那个是老版本的,大概是 2.0 好像。Windows 10 的好像都是 5 了。你装个新版的 PowerShell 就可以了。
或者你去试试 PowerShell Core,Github 官方的 Release 页面有 zip 的 Release 。那个解压直接能用。 |
10
Mithril 2020-04-10 09:33:09 +08:00
@cmdOptionKana PowerShell 里面有一堆的 alias,ls,dir 实际上都是 Get-ChildItem 。不过也就只是别名而已,你也不能用原生命令支持的那些参数。
|
11
itfanr 2020-04-10 10:27:12 +08:00
@cmdOptionKana 在 Linux 下用?
|
12
cmdOptionKana 2020-04-10 10:34:17 +08:00 via iPad
@itfanr 只是说它支持 Linux,转不转看个人意愿,我自己也没转。
|
13
cmdOptionKana 2020-04-10 10:37:05 +08:00 via iPad
@Mithril 对,不过可以看出微软还是很有诚意的,而且也算是平滑了入门过渡的难度曲线,印象分能加点。
|
14
jin7 2020-04-10 10:48:06 +08:00
cmd 比 bash 还难懂...
|
15
Jirajine 2020-04-10 10:55:28 +08:00 via Android
@cmdOptionKana 照顾 Linux 用户?
Linux 用户跑一个$cat a.jpg >b.jpg 就被它那坑爹的别名和管道搞懵了。 |
16
Osk 2020-04-10 10:56:22 +08:00
@Mithril 感谢, 原来还有这种, 不过试了一下, 我用的比较多的 commandlet 一个都没, 当然, 大部分都是和 Windows 管理本身相关的, 比如 get-Command *Net* ... 升级 Windows 7 的 Powershell 是不可能升级的...
|
17
ClericPy 2020-04-10 11:06:22 +08:00
autohotkey 够香了...
|
18
whywhywhy 2020-04-10 11:06:25 +08:00
powershell 可以写 GUI,所以。。。。
|
19
Mithril 2020-04-10 11:52:12 +08:00 1
@Osk PowerShell Core 默认情况下没有加载很多 Module,有不少 Net 命令都是额外 Module 里的。
而且还有个专门的 WindowsCompatibility Module,你想要 portable 的话可以试试把它的 dll 弄进去直接 import 。 当然不可能完全跟老版本的 PowerShell 一样就是了。 |
20
imn1 2020-04-10 12:15:26 +08:00 1
@Davic1
可以调用.net(win)/.net core(跨平台) https://docs.microsoft.com/en-us/dotnet/api/index?view=netframework-4.7.2 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/?view=powershell-7 LINQ https://www.red-gate.com/simple-talk/dotnet/net-framework/high-performance-powershell-linq/ GUI(win only) https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms?view=netframework-4.7.2 GUI 不用说了,对于补充命令行的不足,drag&drop 绝对是第一目的 三方模块 例如 https://github.com/RamblingCookieMonster/Invoke-Parallel 并发器 https://github.com/Windos/BurntToast win10 的冒泡提醒 还能载入 dll 编程,不过.net 的容易些,按照 C#手册就能写,其他的要自己摸索 其他的一些细节写法的方便,例如 PS C:\>命令 1..1024 数组参数,传入一个 1~1024 的 range 数组 好多 shell 常用命令在 ps 里面内置了 alias,如“cat file.txt”其实是“Get-Content file.txt”的 alias bash/shell 还是需要不同的工具、软件共同构成强大,ps 是自己就很强 但使用时感觉稍微慢点,速度比不上 python 和 bash 用 ps 写爬虫挺有趣的,从抓取、提取、保存都能在 ps 完成,不过大量运行嘛……呃 🤮 |
21
imn1 2020-04-10 12:29:56 +08:00
|
22
ddup 2020-04-10 12:43:47 +08:00
PowerShell 强到没对手,而且跨平台,就是 C# 那么优美,PowerShell 咋整得 有点丑呢。
|
23
jin7 2020-04-11 10:19:08 +08:00
powershell 最变态的一点就是 “”中文单 /双引号和英文单 /双引号效果一样 太无语了
还有 有参函数调用的写法 有坑 可能未察觉的写错了 |
24
ps1aniuge 2020-04-18 12:31:50 +08:00
ps 第三课:面向对象语言有啥优缺点?
http://bbs.chinaunix.net/thread-4264062-1-1.html http://tieba.baidu.com/p/5913346984 ps 第 7 课:powershell 到底有何优势,为什么要学? http://bbs.chinaunix.net/thread-4264776-1-1.html @Davic1 |
25
ps1aniuge 2020-04-18 12:57:19 +08:00
@jin7 庆五一,分享 powershell 奇技淫巧,部分解决 bash 的癌症。
shell 支持一对单引号,一对双引号。简称 2 层。多了就必须转义。我们不喜欢转义。 但 powershell 支持用 [中文单引号] =当 [单引号] 。用 [中文双引号] =当 [双引号] 。 所以用 bash 调用 powershell 发送命令时,可以使用 4 层单双引号。这使用了 bash 不支持中文单双引号的特性。 这个特性支持写在 ps 脚本中,也支持在命令行中用 pwsh -c “ps 命令”。 #问:这个脚本谁写的?有问题找谁技术支持? #答:QQ 群号=183173532 #名称=powershell 交流群 #华夏脚之峰。Everest of the powershell #专门教学 win,linux 通用的 ps1 脚本。不想学也可以,入群用红包求写脚本。 例子: ssh [email protected] "echo 'a'" #上面是传统命令,下面是 ps 奇技淫巧 ssh [email protected] "pwsh -c “echo (‘a’+'b') ” " ssh root@跳板机 ip "pwsh -c “ssh root@真机 ip ‘中文单引号包围的命令’ ” " 那么,是否可以再套 bash,在套 ps 呢?自己研究吧。 |
26
ps1aniuge 2020-04-18 13:01:44 +08:00
论坛把中文引号,,,,强制转换成英文了。唉。看来 py 也是解释 中文单双引号,为英文。
|