首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在不创建文件的情况下在Kotlin中运行powershell脚本

在不创建文件的情况下在Kotlin中运行powershell脚本
EN

Stack Overflow用户
提问于 2018-10-18 05:15:43
回答 1查看 215关注 0票数 1

因此,我学习了如何从kotlin here运行ps1文件,但我对该文件的唯一目的是运行命令,然后删除它自己。有没有办法消除创建一个稍后将被删除的文件的麻烦?

我有一个单行的命令字符串,每个命令用分号分隔。

编辑

有些人索要powershell代码,如下所示:

(我把它分成几行,但实际上只有一行)

前面没有反斜杠的美元符号是对kotlin中变量的引用。

代码语言:javascript
复制
"\$ComObj = New-Object -ComObject WScript.Shell; " +
"\$ShortCut = \$ComObj.CreateShortcut(\"\$Env:${shortcut.absolutePath}\"); " +
"\$ShortCut.TargetPath = \"%windir%\\system32\\cmd.exe\"; " +
"\$ShortCut.Description = \"${f.nameWithoutExtension}\"; " +
"\$ShortCut.Arguments = \"/c \"\"start $url\"\"\"; " +
"\$ShortCut.FullName; \$ShortCut.WindowStyle = 7; " +
"\$ShortCut.IconLocation = \"$iconpath\"; " +
"\$ShortCut.Save(); " +
"Remove-Item \"${createPs.absolutePath}\"; "

(代码在运行之前被写入文件,这是我不想要的)

EN

回答 1

Stack Overflow用户

发布于 2018-10-18 06:30:17

如果您可以将脚本放在一个变量中,并且该变量将在调用PowerShell时展开,则可以这样做

Runtime.getRuntime().exec("powershell.exe -command '\$yourvariable'")

当然,您需要尝试使用正确的转义字符来获得要运行的命令周围的引号。

我在这方面取得了最大的成功,首先在CMD.exe中运行它,并找出了正确的语法。然后把它带到你的程序中。这样,您就会知道您首先正确地理解了PowerShell语法。据我所知,PowerShell的解析都是在引擎启动后完成的。因此,当您以这种方式调用PowerShell时,您必须获得正确的语法。

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

https://stackoverflow.com/questions/52863725

复制
相关文章

相似问题

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