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

[玩转系统] Move-Item (Microsoft.PowerShell.Management)

作者:精品下载站 日期:2024-12-14 02:11:54 浏览:16 分类:玩电脑

Move-Item (Microsoft.PowerShell.Management)


Move-Item

模块 :Microsoft.PowerShell.Management

将项目从一个位置移动到另一个位置。

句法

Move-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Move-Item
    -LiteralPath <String[]>
    [[-Destination] <String>]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

描述

Move-Item cmdlet 将项目(包括其属性、内容和子项目)从一个位置移动到另一个位置。这些位置必须由同一提供商支持。

例如,它可以将文件或子目录从一个目录移动到另一个目录,或者将注册表子项从一个项移动到另一个项。当您移动项目时,它将添加到新位置并从其原始位置删除。

示例

示例 1:将文件移动到另一个目录并重命名

此命令将 Test.txt 文件从 C: 驱动器移动到 E:\Temp 目录,并将其重命名为 test.txt。 txttst.txt

Move-Item -Path C:\test.txt -Destination E:\Temp\tst.txt

示例 2:将目录及其内容移动到另一个目录

此命令将 C:\Temp 目录及其内容移动到 C:\Logs 目录。然后,Temp 目录及其所有子目录和文件将出现在 Logs 目录中。

Move-Item -Path C:\Temp -Destination C:\Logs

示例3:将指定扩展名的所有文件从当前目录移动到另一个目录

此命令将当前目录(用点 (.) 表示)中的所有文本文件 (*.txt) 移动到 C:\Logs 目录。

Move-Item -Path .\*.txt -Destination C:\Logs

示例4:递归地将指定扩展名的所有文件从当前目录移动到另一个目录

此命令将所有文本文件从当前目录和所有子目录递归移动到 C:\TextFiles 目录。

Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"

该命令使用 Get-ChildItem cmdlet 获取当前目录(用点 (.) 表示)及其具有 子目录中的所有子项>*.txt 文件扩展名。它使用 Recurse 参数进行递归检索,并使用 Include 参数将检索限制为 *.txt 文件。

管道运算符 (|) 将此命令的结果发送到 Move-Item,后者将文本文件移动到 TextFiles 目录。

如果要移动到 C:\Textfiles 的文件具有相同的名称,Move-Item 将显示错误并继续,但只会将每个名称的一个文件移动到C:\Textfiles。其他文件保留在其原始目录中。

如果 Textfiles 目录(或目标路径的任何其他元素)不存在,则命令失败。即使您使用Force参数,也不会为您创建丢失的目录。 Move-Item 将第一个项目移动到名为 Textfiles 的文件中,然后显示一条错误,说明该文件已存在。

另外,默认情况下,Get-ChildItem 不会移动隐藏文件。要移动隐藏文件,请将 Force 参数与 Get-ChildItem 结合使用。

笔记

在 Windows PowerShell 2.0 中,使用 Get-ChildItem cmdlet 的 Recurse 参数时,Path 参数的值必须是容器。使用 Include 参数指定 *.txt 文件扩展名过滤器 (Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-项目 - 目标 C:\TextFiles)。

示例 5:将注册表项和值移至另一个项

此命令将 HKLM\SoftwareMyCompany 注册表项中的注册表项和值移动到 MyNewCompany 项。通配符 (*) 表示应移动 MyCompany 键的内容,而不是键本身。在此命令中,可选的 PathDestination 参数名称被省略。

Move-Item "HKLM:\software\mycompany\*" "HKLM:\software\mynewcompany"

示例 6:将目录及其内容移动到指定目录的子目录

此命令将 Logs[Sept`06] 目录(及其内容)移动到 Logs[2006] 目录中。

Move-Item -LiteralPath 'Logs[Sept`06]' -Destination 'Logs[2006]'

使用 LiteralPath 参数代替 Path,因为原始目录名称包含左括号和右括号字符([])。该路径也用单引号 (') 括起来,以便反引号 (`) 不会被误解。

Destination 参数也必须用单引号括起来,因为它包含可能会被误解的括号。

参数

-Confirm

在运行 cmdlet 之前提示您进行确认。

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Credential

笔记

随 PowerShell 安装的任何提供程序均不支持此参数。要在运行此 cmdlet 时模拟其他用户或提升您的凭据,请使用 Invoke-Command。

类型 :

PS凭证

位置:

命名

默认值:

当前用户

必需的:

False

接受管道输入:

True

接受通配符:

False

-Destination

指定项目移动位置的路径。默认为当前目录。不允许使用通配符。

要重命名正在移动的项目,请在 Destination 参数的值中指定新名称。

类型 :

String

位置:

1

默认值:

当前目录

必需的:

False

接受管道输入:

True

接受通配符:

True

-Exclude

以字符串数组形式指定此 cmdlet 在操作中排除的一个或多个项目。此参数的值限定 Path 参数。输入路径元素或模式,例如 *.txt。允许使用通配符。仅当命令包含某个项目的内容时,排除参数才有效,例如C:\Windows\*,其中通配符指定的内容>C:\Windows 目录。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

True

-Filter

指定一个过滤器来限定 Path 参数。文件系统提供程序是唯一安装的支持使用过滤器的 PowerShell 提供程序。您可以在 about_Wildcards 中找到文件系统过滤器语言的语法。过滤器比其他参数更有效,因为提供程序在 cmdlet 获取对象时应用它们,而不是让 PowerShell 在检索对象后过滤对象。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

True

-Force

强制运行命令而不要求用户确认。实施方式因提供商而异。有关详细信息,请参阅 about_Providers。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Include

以字符串数组形式指定此 cmdlet 在操作中包含的一个或多个项目。此参数的值限定 Path 参数。输入路径元素或模式,例如 *.txt。允许使用通配符。仅当命令包含某个项目的内容时,Include 参数才有效,例如 C:\Windows\*,其中通配符指定 的内容>C:\Windows 目录。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

True

-LiteralPath

指定到一个或多个位置的路径。 LiteralPath 的值完全按照键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将其括在单引号 (') 中。单引号告诉 PowerShell 不要将任何字符解释为转义序列。

有关更多信息,请参阅 about_Quoting_Rules。

类型 :

String[]

别名:

PSPath, LP

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-PassThru

返回表示移动项目的对象。默认情况下,此 cmdlet 不生成任何输出。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Path

指定项目当前位置的路径。默认为当前目录。允许使用通配符。

类型 :

String[]

位置:

0

默认值:

当前目录

必需的:

True

接受管道输入:

True

接受通配符:

True

-WhatIf

显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。

类型 :

SwitchParameter

别名:

wi

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

字符串

您可以通过管道传输包含此 cmdlet 路径的字符串。

输出

默认情况下,此 cmdlet 不返回任何输出。

PSObject

当您使用 PassThru 参数时,此 cmdlet 将返回一个表示移动项目的对象。

笔记

PowerShell 包含以下 Move-Item 别名:

  • 所有平台:

      mi
    move
  • Windows:

      mv
    • 此 cmdlet 将在同一提供程序支持的驱动器之间移动文件,但它只会移动同一驱动器内的目录。

    • 由于 Move-Item 命令会移动项目的属性、内容和子项目,因此默认情况下所有移动都是递归的。

    • 此 cmdlet 旨在处理任何提供程序公开的数据。要列出会话中可用的提供程序,请输入 Get-PSProvider。有关详细信息,请参阅 about_Providers。

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

      取消回复欢迎 发表评论:

      关灯