我已经做了一个电子申请,主要是为我的服务台同事在工作。
它所做的(上下文):
它提供了一个简单的gui,它可以完成不同的“任务”。示例:
为此,我使用了以下几种组合:
问题:
当我在开发模式下运行它时,这个应用程序正在按它应该运行的方式运行。但是在我用电子构建和封装它之后,NPM包node-powershell
再也找不到.ps1
脚本了。我想我已经找出了问题,但我不知道解决这个问题的办法是什么。node-powershell
需要一个脚本路径和一个命令数组。我把它设成这样:
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
所以这是主要的问题。我如何包装这个“正确的方式”,使它实际上是工作之后。
信息:
"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",
我希望你们中的一些人能帮助我或引导我走向正确的方向。
可能的想法:
引用一个完全不同的路径,并将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
脚本:
!谢谢!
发布于 2018-07-10 01:29:55
我正在做类似的事情,但是我为PowerShell脚本使用的方法是将它们创建为PowerShell模块。然后,只需将它们放置在有效的PSModule位置之一,就可以了。您只需编写一个powershell脚本,将模块复制到正确的位置,并将包复制到桌面或任何需要的位置。
一个非常简单的模块可以是这样的:
在Files\WindowsPowerShell\Modules C:\中,创建一个名为MyModuleTest的文件夹。在此文件夹中创建一个名为MyModuleTest.psm1.的文件在这个PSM1文件中创建一个函数。
function Invoke-MyModuleTest {
Write-host "This is My Module"
}
保存文件,打开powershell控制台会话,然后运行Invoke-MyModuleTest,它将输出到控制台。
您可以阅读更多关于模块这里的信息。
您还可以找到一些更复杂的模块这里的好例子。
一旦您将脚本转换为模块,您就可以像调用任何cmdlet一样调用它们,我目前没有任何可以共享的内容。
https://stackoverflow.com/questions/51147152
复制相似问题