2013-12-23 123 views
0

我們正在將Unix腳本移植到Powershell。我對PowerShell完全陌生,並且在尋找替代Unix中的at命令時遇到問題。我們有一個使用at命令預定腳本:「at」命令的powershell等效

SEQ_NO=12; export SEQ_NO 
A=R2.13575180; export A 
B=R4.13575180.DAT; export B 
chmod 777 R4.13575180.DAT 
echo "sh R4.13575180.DAT > M.reclog " | 
at now + 2 minutes 

R4.13575180.DAT將包含PowerShell命令裏面。我能夠找到其他命令的替代品。我需要找到at命令的替代品。我確實經歷了某些鏈接,但我仍然不清楚。你能否建議更換?

回答

3

因爲你是新來的PowerShell,這裏是一些一般性的建議:

  • 確保您運行的是最新的操作系統可能,以獲得最新的功能(如Windows 8.1)
  • 請確保您已經安裝了最新的Microsoft .NET Framework版本(如Microsoft .NET Framework 4.5.1
    • Microsoft .NET框架4.5.1已包含在Windows 8.1
  • 確保您正在運行最新的PowerShell(aka。 Windows管理框架(WMF)核心)版本
    • WMF is 4.0
    • 的WMF/PowerShell的4.0軟件包的最新版本內置於Windows 8.1(Windows Server 2012中R2),並是Windows 7(Server 2008 R2的可用
    • WMF 4.0 不適對於Windows 8.0

重要:ScheduledTasks PowerShell模塊僅在具有Microsoft .NET Framework 4.5.1和PowerShell版本4.0的Windows 8.1上可用。

如果您想安排將來運行的某些內容,那麼最有可能在尋找名爲ScheduledTasks的PowerShell模塊。

要找出什麼命令是ScheduledTasks模塊中,使用這個命令:

Get-Command -Module ScheduledTasks; 

要在回答你的問題更具體,這裏是如何創建一個ScheduledTask一個例子:

# 1. Create a trigger 
$Trigger = New-ScheduledTaskTrigger -At '2013-12-30 12:00:00 AM' -Once; 
# 2. Create an action 
$Action = New-ScheduledTaskAction -Execute powershell.exe -Argument '-Command Write-Host -Object "hi";' 
# 3. Create the scheduled task 
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Description PowerShell; 
# 4. Register the ScheduledTask 
Register-ScheduledTask -InputObject $Task -TaskName PowerShell; 

# 5. [Optional] View/confirm the ScheduledTask object 
Get-ScheduledTask -TaskName PowerShell; 
+0

嗨特雷弗,謝謝你的回覆。我們使用Windows 7和PowerShell版本2.0。這裏會有相同的嗎?除了「ScheduledTasks」之外,是否還有其他選項可用於調度任務?對不起,如果這個問題很難理解你所解釋的。 – user2879237