首页 > 解决方案 > Electron 执行 powershell 脚本

问题描述

我想在电子应用程序启动时执行一个 powershell 脚本。我尝试将以下内容添加到<head>我的index.html

<head>
<script type="text/javascript">
    var spawn = require("child_process").spawn;
    spawn("powershell.exe",[".\myPSScript.ps1"]);       
</script>
</head>
<body>
...
</body>

这没有用。添加时:

document.write("Hello")

它显示在应用程序中,因此我可以确定它<script>正在运行。当我从 powershell-terminal 运行脚本本身时,它运行没有问题,并且做它应该做的事情。

我还尝试在以下位置给出绝对路径:

spawn("powershell.exe",["C:\folder\folder2\myPSScript.ps1"]);       

该脚本删除.db计算机上文件夹中的所有文件。

Get-ChildItem -Path 'MY_Wonderfull_Path' *.db | Where-Object { $_.CreationTime -lt (get-date 2021-09-09) } | foreach { Remove-Item -Path $_.FullName }

我不知道为什么它没有运行。电子不能产生一个新的子进程吗?是权限问题吗?

标签: javascriptwindowspowershellelectron

解决方案


根据要求,在这里我的评论作为答案。

您需要将路径中的反斜杠加倍以逃避它们。

spawn("powershell.exe",["C:\\folder\\folder2\\myPSScript.ps1"]);

推荐阅读