|
本帖最后由 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 界面中输入以下命令:
执行此命令后,系统会显示一个包含 PowerShell 完整信息的列表。在这个列表中,PSVersion 字段会显示当前的 PowerShell 版本号。例如,如果显示的 PSVersion 值为 5.1.22000.653,那么你的系统中的 PowerShell 版本就是 5.1.22000.653
2.搜索最新版本powershell
- winget search Microsoft.PowerShell
复制代码 2.使用WinGet完成升级:
- 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格式,用于波函数分析。)
- for inf in *sp.inp
- do
- echo Running ${inf} ...
- /D/orca/orca ${inf} |tee ${inf//inp/out}
- echo ${inf} is finished
- echo
- done
- for inf in *sp.inp
- do
- echo Running ${inf} ...
- /D/orca/orca_2mkl ${inf//.inp} -molden
- echo ${inf} is finished
- echo
- done
复制代码
注:
Windows自带的叫做Windows Powershell,目前最高版本是5.1,它是Windows系统的一个组成部分,是基于.net构建的。它的二进制文件为powershell.exe
PowerShell 7是基于.net core构建的跨平台版本。它的二进制文件为pwsh.exe
在Windows上安装PowerShell 7并不会代替Windows PowerShell,他们会平行存在,可同时使用。
|
评分 Rate
-
查看全部评分 View all ratings
|