当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 通过自动文件传输和 PowerShell 节省时间

作者:精品下载站 日期:2024-12-14 20:48:23 浏览:15 分类:玩电脑

通过自动文件传输和 PowerShell 节省时间


您不必照顾所有的文件副本;计划任务非常适合自动文件传输。

无论您如何操作,将文件从一个地方复制到另一个地方都是一项微不足道的任务。有多种方法可以完成这项工作:在 Windows 资源管理器中拖放文件、使用 PowerShell 的 Copy-Item 或 DOS 中的简单复制命令。

只需指定源路径和目标路径并设置一些其他可选参数即可。只有当您开始频繁复制大量文件时,才会遇到问题。

自动执行文件复制时,尤其是在 Windows 环境中,您的首选脚本语言将是 Windows PowerShell。如果您需要将一个或多个文件从一个目标快速复制到另一个目标,PowerShell 是一种很好的方法。此外,不仅可以轻松手动启动 PowerShell 脚本,还可以使用 Windows 计划任务通过 PowerShell 脚本触发自动文件传输。

在本文中,我们将介绍如何使用 PowerShell 执行文件自动文件传输,方法是编写脚本并创建计划任务以定期启动该脚本。但在开始之前,我假设您的计算机上至少安装了 PowerShell v4。否则,我即将向您展示的技巧可能无法正常发挥作用。

[玩转系统] 通过自动文件传输和 PowerShell 节省时间

创建自动文件传输脚本

首先,您需要创建一个脚本来执行文件传输。我们将脚本命名为CopyFiles.ps1。该脚本将包含以下代码:param(

param(
    [string]$SourcePath,
    [string]$DestinationPath
)

Copy-Item -Path $SourcePath -Destination $DestinationPath -Recurse

正如您所看到的,该脚本很简单,但它为根据您的环境进行大量自定义提供了空间。

此自动文件传输脚本中最复杂的部分是 param() 部分。这是一个包含两个参数的参数块:SourcePath 和 DestinationPath。通过设置这两个值,参数允许我们将不同的值传递给脚本,以便我们可以重用它。如果 SourcePath DestinationPath 是实际路径,我们就必须为每个不同的文件副本创建单独的脚本!

手动启动此脚本将如下所示:

& .\CopyFiles.ps1 -SourcePath C:\Source -DestinationPath \SERVER\Destination

此示例会将 C:\Source 文件夹中的所有文件和子文件夹复制到 \SERVER\Destination 共享文件夹。

创建计划任务

现在您已经有了 CopyFiles.ps1 PowerShell 脚本,请前往您想要启动它的计算机。在此示例中,我们将创建一个计划任务,每天凌晨 3 点运行该脚本一次。

您可以通过运行任务计划程序 GUI 并以这种方式创建计划任务来创建计划任务,但我们这里主要讨论自动化。我们还学习如何在 PowerShell 中创建计划任务。为此,您需要完成四个粗略步骤:

  1. 创建计划任务操作。
  2. 创建触发器。
  3. 在内存中创建计划任务。
  4. 在计算机上创建计划任务。

这就是实际情况。首先,我们将创建自动文件传输计划任务操作。这定义了 EXE 与任何参数一起运行。在这里,我假设您的脚本位于C:\CopyFiles.ps1

$Action = New-ScheduledTaskAction -Execute 
 
'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -Argument "-NonInteractive -NoLogo -NoProfile -File 'C:\CopyFiles.ps1' -SourcePath 'C:\Source -DestinationPath '\SERVER\Destination'"

接下来,我们将创建一个触发器,在每天凌晨 3 点开始。

$Trigger = New-ScheduledTaskTrigger -Daily -At '3AM'

接下来,我们将使用刚刚创建的操作和触发器在内存中创建计划任务。

$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings (New-ScheduledTaskSettingsSet)

最后,我们实际上将在系统上创建自动文件传输计划任务,将其称为文件传输自动化,并使用提供的密码在本地管理员帐户下运行它。

$Task | Register-ScheduledTask -TaskName 'File Transfer Automation' -User 'administrator' -Password 'supersecret'

这将注册脚本,现在它会在每天凌晨 3 点将所有文件从源复制到目标。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯