ZetCode

PowerShell Move-Item

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍 PowerShell 中的 Move-Item cmdlet。此 cmdlet 将文件和目录从一个位置移动到另一个位置。

Move-Item 基本用法

Move-Item cmdlet 将一个项从一个位置移动到另一个位置。它可以移动文件、目录和注册表项。移动操作后,原始项将被删除。支持使用通配符一次移动多个项。

Move-Item 基本用法

使用 Move-Item 的最简单方法是指定源路径和目标路径。源是要移动的项,目标是目标位置。如果目标是目录,则该项将保留其原始名称。

move1.ps1
Move-Item -Path "C:\temp\file1.txt" -Destination "C:\backup\"

此命令将 file1.txt 从 C:\temp 移动到 C:\backup。该文件在新位置保留其名称。原始文件将从源位置删除。

移动并重命名文件

您可以通过在目标路径中指定新名称来在移动文件的同时重命名该文件。这会将移动和重命名合并为一个操作。目标必须包含新文件名。

move2.ps1
Move-Item -Path "C:\temp\file1.txt" -Destination "C:\backup\file2.txt"

此命令将 file1.txt 移动到 C:\backup 并将其重命名为 file2.txt。在一条命令中更改了文件的位置和名称。

使用通配符移动多个文件

可以使用通配符移动匹配模式的多个文件。星号 (*) 代表任意字符序列。这对于移动具有相似名称或扩展名的文件组很有用。

move3.ps1
Move-Item -Path "C:\temp\*.log" -Destination "C:\logs\"

此命令将 C:\temp 中的所有 .log 文件移动到 C:\logs。每个文件都保留其原始名称。只有匹配模式的文件才会受到影响。

移动目录

目录可以像文件一样移动。在移动过程中,整个目录结构都会得到保留。目录中的所有内容都将随目录一起移动。

move4.ps1
Move-Item -Path "C:\temp\old_data" -Destination "C:\archive\"

此命令将 old_data 目录从 C:\temp 移动到 C:\archive。目录及其所有内容都将被重新定位。该操作会保持目录结构。

强制执行移动操作

`-Force` 参数允许移动通常受限制的项。这包括隐藏文件或只读文件。请谨慎使用,因为它会覆盖一些安全检查。

move5.ps1
Move-Item -Path "C:\temp\hidden.txt" -Destination "C:\backup\" -Force

此命令移动一个隐藏文件,该文件通常会被跳过。`-Force` 参数确保操作能够进行,尽管文件具有该属性。

移动时带有确认提示

`-Confirm` 参数在移动项之前添加了一个安全检查。PowerShell 会在执行移动之前提示您确认。这有助于防止意外的数据移动。

move6.ps1
Move-Item -Path "C:\temp\important.txt" -Destination "D:\backup\" -Confirm

此命令将在移动 important.txt 之前发出提示。用户必须通过输入“Y”或“A”来确认操作。这为关键文件增加了额外的保护层。

使用 WhatIf 模拟移动

`-WhatIf` 参数显示在实际移动文件之前会发生什么。这对于在执行移动操作之前对其进行测试很有用。不会对文件系统进行任何更改。

move7.ps1
Move-Item -Path "C:\temp\*.tmp" -Destination "C:\temp\old\" -WhatIf

此命令显示如果执行移动操作会发生什么。输出会显示哪些文件将在何处被移动。实际文件保持不变。

PS C:\> .\move7.ps1
What if: Performing the operation "Move File" on target "Item: C:\temp\file1.tmp Destination: C:\temp\old\file1.tmp".
What if: Performing the operation "Move File" on target "Item: C:\temp\file2.tmp Destination: C:\temp\old\file2.tmp".

来源

PowerShell 文档

在本文中,我们已经介绍了 PowerShell 中的 Move-Item cmdlet。

作者

我叫 Jan Bodnar,我是一名充满激情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 PowerShell 教程