Pek*_*ica 36 windows powershell
我有一个连接到网站的PowerShell脚本,并解析其返回的数据(它是关于将以前上传的SQL文件导入到网站的数据库中).PowerShell脚本使用wget
,稍后我可以用本机函数替换它.
导入过程嵌入在由称为scriptFTP的第三方程序执行的脚本中.
当我从一个.bat文件中调用它时,脚本运行正常:
powershell "& "C:\data\etc\run_import_script.ps1"
exit %ERRORLEVEL%
Run Code Online (Sandbox Code Playgroud)
但是,当我从更大的ScriptFTP上下文中调用此.bat文件时,会发生以下情况:
当我将批处理文件更改为以下内容时:
start powershell "& "C:\data\etc\run_import_script.ps1"
exit %ERRORLEVEL%
Run Code Online (Sandbox Code Playgroud)
它工作,在新的控制台中运行PowerShell脚本,但我无法获取PowerShell返回的错误级别.
我试图直接从ScriptFTP调用PowerShell,绕过批处理文件,但结果相同:它只是卡住了.
我有PowerShell脚本的任何输出都使用Write-Output
或Write-Host
不显示.
所有程序都在同一个用户下运行,我.
有人有什么想法怎么办?
Jas*_*ger 23
此变体可能适合您.
powershell -NoProfile -Command "C:\data\etc\run_import_script.ps1; exit $LASTEXITCODE" < NUL
Run Code Online (Sandbox Code Playgroud)
aph*_*ria 16
尝试添加/ WAIT参数.它会使.bat等待PowerShell脚本完成.
START /WAIT powershell "& "C:\data\etc\run_import_script.ps1"
Run Code Online (Sandbox Code Playgroud)
小智 16
根据我的经验,PowerShell.exe可以使用-File开关以可预测的方式轻松地从批处理文件或shell脚本中运行脚本.一个不需要使用Start命令.
重要的是要追加
< nul
Run Code Online (Sandbox Code Playgroud)
到批处理文件中的命令行.我的研究表明,PowerShell的运行中通过-File开关指示的脚本命令,然后等待额外的PowerShell从标准输入命令(我与-Command开关短暂的实验显示类似的行为).通过将标准输入重定向到nul,一旦PowerShell完成执行脚本并从标准输入"读取文件结尾",PowerShell就会退出.
从Cygwin调用PowerShell时,请使用
< /dev/null
Run Code Online (Sandbox Code Playgroud)
例如,我使用shell变量从Cygwin运行PowerShell脚本,如下所示:
PowerShell.exe -ExecutionPolicy RemoteSigned -File $_powershellscriptpath $_firstscriptparameter < /dev/null
Run Code Online (Sandbox Code Playgroud)
如果您的经历与我的不同,请发表评论. - 戈登
小智 9
我们遇到了类似的问题.我们想从一个只有一个盒子的软件调用一个powershell应用程序来输入"Command"和"Parameters"但是虽然powershell成功运行(我可以看到受影响的文件已更新.)
最后,我的同事帮助我弄明白了Command需要:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Run Code Online (Sandbox Code Playgroud)
和参数:
-ExecutionPolicy unrestricted -Command "& {C:\scripts\apps\EDI\Test.ps1; [Environment]::Exit(1)}"
Run Code Online (Sandbox Code Playgroud)
在我们的例子中,重要的是使用[Environment]::Exit(1)
而不是Exit 1
.我相信Exit只是终止脚本,而不是关闭Powershell本身.
归档时间: |
|
查看次数: |
69728 次 |
最近记录: |