计算化学公社

 找回密码 Forget password
 注册 Register
Views: 336|回复 Reply: 1
打印 Print 上一主题 Last thread 下一主题 Next thread

[综合交流] 在windows中使用powershell运行ORCA时应注意更新powershell

[复制链接 Copy URL]

326

帖子

3

威望

1746

eV
积分
2132

Level 5 (御坂)

本帖最后由 Stardust0831 于 2025-4-10 01:38 编辑

近来发现很多新人喜欢用powershell来算orca,而windows自带的powershell5在运行orca时有诸多不便,社长在《量子化学程序ORCA的安装方法》一帖中写的这段话就充分体现了这点:
如果在Windows下运行ORCA,不要用PowerShell,要么用cmd要么用cmder。因为PowerShell里通过重定向产生的ORCA输出文件默认是Unicode编码的,Multiwfn没法读取里面的信息。OfakeG程序也同样不认Unicode编码。

powershell在使用上确实有一些方便之处,对于希望使用powershell来运行orca的新人,我的建议是:
可以用powershell,但是需要将powershell升级至powershell7。


powershell的更新非常简单,通过WinGet就可以轻松完成:
在 Windows 上安装 PowerShell - PowerShell | Microsoft Learn
安装时会涉及的命令如下:
1.查看当前版本:
在 PowerShell 界面中输入以下命令:
  1. $PSVersionTable
复制代码
执行此命令后,系统会显示一个包含 PowerShell 完整信息的列表。在这个列表中,PSVersion 字段会显示当前的 PowerShell 版本号。例如,如果显示的 PSVersion 值为 5.1.22000.653,那么你的系统中的 PowerShell 版本就是 5.1.22000.653
2.搜索最新版本powershell
  1. winget search Microsoft.PowerShell
复制代码
2.使用WinGet完成升级:
  1. winget install --id Microsoft.PowerShell --source winget
复制代码


目前最新版本powershell7相较于powershell5有比较多的更新,在升级到powershell7以后,社长博文提到的这些缺点不再存在,而且还多了很多便捷的地方。下面介绍一些个人认为对实际计算帮助很大的更新:
1.默认编码也变成了和cmd/cmder一样的UTF-8,使Multiwfn和OfakeG程序可以顺利读入powershell重定向产生的文件。
2.可以使用类似"D:/orca/orca.exe test.inp |tee test.out",调用orca计算当前目录下的test.inp文件,将输出消息同时打印到屏幕上和输出到test.out文件中。
3.可以根据输入过的指令补全指令,效果如图:

orc以后的斜体字就是powershell自动补全的。可以按>键接受补全。

当前powershell也有不少局限性:
powershell目前仍然对很多bash环境下的命令支持不全,在用bash脚本调用orca批量计算时会出问题。所以,如果你有使用bash脚本调用orca来批量完成计算的需求,仍然建议使用社长博文中提到的cmder,或者直接用wsl+装linux版本的orca。下面给出一个典型的批量运行脚本的例子:
(将orca安装到D:\orca文件夹中后,下列脚本可以批量计算当前目录下以sp.inp结尾的输入文件,并把gbw文件文件批量转成multiwfn支持的molden.input格式,用于波函数分析。)
  1. for inf in *sp.inp
  2. do
  3. echo Running ${inf} ...
  4. /D/orca/orca ${inf} |tee ${inf//inp/out}
  5. echo ${inf} is finished
  6. echo
  7. done

  8. for inf in *sp.inp
  9. do
  10. echo Running ${inf} ...
  11. /D/orca/orca_2mkl ${inf//.inp} -molden
  12. echo ${inf} is finished
  13. echo
  14. done
复制代码

注:
Windows自带的叫做Windows Powershell,目前最高版本是5.1,它是Windows系统的一个组成部分,是基于.net构建的。它的二进制文件为powershell.exe
PowerShell 7是基于.net core构建的跨平台版本。它的二进制文件为pwsh.exe
在Windows上安装PowerShell 7并不会代替Windows PowerShell,他们会平行存在,可同时使用。









评分 Rate

参与人数
Participants 3
eV +12 收起 理由
Reason
wal + 5 谢谢分享
freesia + 4 好物!
adver + 3 谢谢分享

查看全部评分 View all ratings

389

帖子

1

威望

4824

eV
积分
5233

Level 6 (一方通行)

2#
发表于 Post on 2025-4-10 07:48:39 | 只看该作者 Only view this author
好帖,生命在于折腾。

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-13 05:34 , Processed in 0.233403 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list