【发布时间】:2015-01-14 08:59:28
【问题描述】:
Function start
{
$BackupList = Import-Csv C:\file.csv -Delimiter ";"
ForEach($computer in $BackupList)
{
$arrayBackup = ($computer.Backup).split(".")
$backupdate = Get-Date -Day $arrayBackup[0] -Month $arrayBackup[1] -Year $arrayBackup[2]
$datetoday = Get-Date -format d
$countingday = (get-date $datetoday).AddMonths(-3)
if ($Zahl -eq 1)
{
if ($backupdate -le $countingday)
{
$global:client = $computer.computername
$global:mac = $computer.MAC
$global:Name = $computer.device
$global:lastsaved = [int]$computer.lastsavetime
if ($computer.computername -match $Client)
{
{
$computer.Backup = $datetoday
if ($lastsaved -ne 4)
{
$lastsaved++
}
else
{
$lastsaved = 1
}
if ($lastsaved -eq 1)
{
$global:savingplace = "\\Savingplace1"
}
elseif ($lastsaved -eq 2)
{
$global:savingplace = "\\Savingplace2"
}
elseif ($lastsaved -eq 3)
{
$global:savingplace = "\\Savingplace3"
}
elseif ($lastsaved -eq 4)
{
$global:savingplace = "\\Savingplace4"
}
$computer.lastsavetime = $lastsaved
}
}
Start-Job -InitializationScript $functions -ScriptBlock {NASLOGIN} -argumentlist $_ | Receive-Job
}
}
}
}
我正在从 csv 文件中读取一些信息。 我想将其中的一些信息传递给工作。 在工作中,我使用这个变量做了大量的函数调用和操作。 但目前没有变量传递给作业。 我该如何解决这个问题?
【问题讨论】:
-
也许我有点迟钝,但我怎样才能将 csv 文件行中的所有变量传递给我的工作?
-
你怎么知道没有变量通过?我们需要查看您的脚本块的内容。 $_ 被通过了,但你可能没有正确使用它
-
在我的脚本块中有很多功能。其中之一是例如 naslogin。在此函数中,检查 lastsaved 具有的值,具体取决于它设置一些其他变量的值。在设置它们之后,调用另一个函数在 $client 中定义的计算机上执行 ping。等等。我需要整个脚本块的变量,并且我在许多不同的函数中使用它们。
-
然后向我们展示您如何尝试访问脚本块中的变量,否则只是猜测
-
函数 NASLogin { if ($lastsaved -eq 1) { $global:login = "login" $global:pswd = "password" } ELSEIF ($lastsaved -eq 2) { $global:login = "login" $global:pswd = "password" } ELSEIF ($lastsaved -eq 3) { $global:login = "login" $global:pswd = "password" } ELSEIF ($lastsaved -eq 4) { $global :login = "login" $global:pswd = "password" } CheckSystemOn } Function CheckSystemOn{ IF (ClientPing) { PlattformCheck } ELSE { C:\wol.exe $mac Waitfors } } Function ClientPing{ 测试连接 $client -quiet -Count 1 } 抱歉不知道如何格式化
标签: windows variables powershell csv jobs