首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在构建和打包后,如何在我的电子应用程序中引用我的powershell脚本?

在构建和打包后,如何在我的电子应用程序中引用我的powershell脚本?
EN

Stack Overflow用户
提问于 2018-07-03 05:22:48
回答 1查看 3.5K关注 0票数 4

我已经做了一个电子申请,主要是为我的服务台同事在工作。

它所做的(上下文):

它提供了一个简单的gui,它可以完成不同的“任务”。示例:

为此,我使用了以下几种组合:

  • 带电子节点
  • 反应
  • 节点-Powershell

问题:

当我在开发模式下运行它时,这个应用程序正在按它应该运行的方式运行。但是在我用电子构建和封装它之后,NPM包node-powershell再也找不到.ps1脚本了。我想我已经找出了问题,但我不知道解决这个问题的办法是什么。node-powershell需要一个脚本路径和一个命令数组。我把它设成这样:

代码语言:javascript
代码运行次数:0
运行
复制
    const p1 = require('path').resolve();
    const scriptPath = require('path').join(p1, 'src/PowershellScripts/AddMailboxPermissions.ps1');

然后是ps.addCommand(scriptPath, commands); (节点-powershell)

如前所述,这在webpack服务器的开发模式中工作得很好,但是在打包后运行时,我会得到以下错误:

找不到C:\Users\Huberdo\Projekte\Powershell-SAS-App\Client\builds\basic-electron-react-boilerplate-win32-x64\src\PowershellScripts\GetRemoteMac.ps1。

原因是包装有如下的结构。.ps1文件现在有以下路径:

C:\Users\Huberdo\Projekte\Powershell-SAS-App\Client\builds\basic-electron-react-boilerplate-win32-x64\resources\app\src\PowershellScripts

所以这是主要的问题。我如何包装这个“正确的方式”,使它实际上是工作之后。

信息:

  • 我在windows 10 x64机器上运行这个
  • package.json脚本:
    • "dev": "webpack-dev-server --hot --host 0.0.0.0 --config=./webpack.dev.config.js", "build": "webpack --config webpack.build.config.js", "package": "webpack --config webpack.build.config.js",

  • 当我在dev模式下运行它时,它解析出正确的路径,并且一切都正常。

我希望你们中的一些人能帮助我或引导我走向正确的方向。

可能的想法:

引用一个完全不同的路径,并将ps1文件复制到另一个具有gulp任务的目录中?从来没用过。这是一种可能的解决办法吗?如果是,如何最好地处理这个问题?

更新当我将src文件夹从C:\Users\Huberdo\Projekte\Powershell-SAS-App\Client\builds\basic-electron-react-boilerplate-win32-x64\resources\app复制到根C:\Users\Huberdo\Projekte\Powershell-SAS-App\Client\builds\basic-electron-react-boilerplate-win32-x64时,它再次工作。所以这主要是一个路径问题,我不知道如何解决。

最后但并非最不重要的是与github项目的直接链接:

https://github.com/dhuber666/Powershell-SAS-Tool

在这里,我调用ps1脚本:

https://github.com/dhuber666/Powershell-SAS-Tool/blob/SendAs/src/components/scriptsComponents/AddMailboxPermissions.js

!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-07-10 01:29:55

我正在做类似的事情,但是我为PowerShell脚本使用的方法是将它们创建为PowerShell模块。然后,只需将它们放置在有效的PSModule位置之一,就可以了。您只需编写一个powershell脚本,将模块复制到正确的位置,并将包复制到桌面或任何需要的位置。

一个非常简单的模块可以是这样的:

在Files\WindowsPowerShell\Modules C:\中,创建一个名为MyModuleTest的文件夹。在此文件夹中创建一个名为MyModuleTest.psm1.的文件在这个PSM1文件中创建一个函数。

代码语言:javascript
代码运行次数:0
运行
复制
function Invoke-MyModuleTest {

Write-host "This is My Module"

}

保存文件,打开powershell控制台会话,然后运行Invoke-MyModuleTest,它将输出到控制台。

您可以阅读更多关于模块这里的信息。

您还可以找到一些更复杂的模块这里的好例子。

一旦您将脚本转换为模块,您就可以像调用任何cmdlet一样调用它们,我目前没有任何可以共享的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51147152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档