2013-07-20 160 views
3

我有一个.ps1 powershell脚本,它在窗口中执行,但我的整个数据都在linux服务器上,有没有任何可能的方式可以通过我执行红帽服务器PowerShell脚本我想在红帽linux服务器执行.ps1 powershell脚本

PowerShell脚本是:

Clear-Host 
$path="D:\Deep Backup 26-04-2013\New folder" 
$systemname=Read-Host 'Enter System Name' 



$files=Get-ChildItem $path -Recurse -Force -Include *_Registrar.zip*,*.reg.zip* 


$counter=1 

foreach($file in $files) 
{ 
    $name=$file.name 
    [void][system.reflection.Assembly]::LoadFrom("C:\Program Files\MySQL\MySQL Connector Net 6.5.4\Assemblies\v2.0\MySql.Data.dll") 
    $dbconnect=New-Object MySql.Data.MySqlClient.MySqlConnection 
    $dbconnect.ConnectionString="server=localhost;userid=root;password=nPr123*;database=test3;" 
    $dbconnect.Open() 

    $sql="insert into eid values('"+$name + "','"+$systemname+"')" 


    $command=new-object MySql.Data.MySqlClient.MySqlCommand($sql,$dbconnect) 
    $command.ExecuteNonQuery() 


} 
$sql="insert into eid_unique 
     select distinct Packet_name, System_name from eid a 
     where not exists (select 1 from eid_unique b 
     where a.Packet_name=b.Packet_name);" 


    $command=new-object MySql.Data.MySqlClient.MySqlCommand($sql,$dbconnect) 
    $command.ExecuteNonQuery() 
$dbconnect.close() 
+2

你最好在bash/ruby​​/python/perl中实现它。 –

+0

即使在回答中提到的“Pash”也没有办法可以加载.NET dll(在你的例子中它是MySql.Data.dll)......因为Andy Arismendi提到你需要重新实现脚本到其他脚本语言 –

+0

我第二个坚持使用平台“本地”语言的建议。 –

回答

0

这听起来像Pash可以为你工作。

+0

有趣,但它看起来并不像它正在积极保持。 –

3

Pash是一个正在开发中的Powershell的跨平台单声道克隆。 您只需要下载,使用xbuild构建它,然后运行它。 就像使用PowerShell在Windows中可以用执行脚本

& '/path/to/script.ps1' 
2

四年后从原来的问题微软发布的PowerShell对于Linux。而且它的开源:https://github.com/PowerShell/PowerShell

在Linux环境下,你可以使用语法如下:(script.ps1,可执行文件)

#!/usr/bin/powershell -Command 

write-host -fore Green "executing PowerShell!"; 
相关问题