PowerShell相当于“at”命令

时间:2013-12-23 07:02:43

标签: powershell

我们正在将Unix脚本移植到PowerShell。我是PowerShell的新手,在查找Unix中at命令的替换时遇到了问题。

我们有一个使用at命令安排的脚本:

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命令的替代品。我确实通过了某些链接,但我仍然不清楚。你能建议换一个吗?

2 个答案:

答案 0 :(得分:3)

由于您是PowerShell的新手,以下是一些一般性建议:

  • 确保您正在运行最新的操作系统,以获取最新功能(例如Windows 8.1)
  • 确保已安装最新的Microsoft .NET Framework版本(例如Microsoft .NET Framework 4.5.1
    • Microsoft .NET Framework 4.5.1已包含在Windows 8.1中
  • 确保您运行的是最新的PowerShell(又称Windows Management Framework(WMF)Cor​​e)版本
    • WMF is 4.0
    • 的最新版本
    • WMF / PowerShell 4.0软件包内置于Windows 8.1(Windows Server 2012 R2)中,可用适用于Windows 7(Server 2008 R2)
    • Windows 8.0
    • 的WMF 4.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;

答案 1 :(得分:1)

由于您运行的是Windows 7 / PowerShell 2.0,因此您可能希望从PowerShellPack获取TaskScheduler模块。

这将为您提供管理计划任务的cmdlet。