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

[玩转系统] 在 PowerShell 中创建临时目录 [2 种方法]

作者:精品下载站 日期:2024-12-14 05:26:57 浏览:15 分类:玩电脑

在 PowerShell 中创建临时目录 [2 种方法]


[玩转系统] 在 PowerShell 中创建临时目录 [2 种方法]

[System.IO.Path]::GetTempPath() 方法与 New-Item cmdlet 结合使用

使用 [System.IO.Path]::GetTempPath()New-Item cmdlet 在 PowerShell 中创建临时目录。

使用 GetTempPath() 方法:

$temporaryPath = [System.IO.Path]::GetTempPath()
$newTempDirectory = New-Item -ItemType Directory -Path "$temporaryPath\temp"
$newTempDirectory

输出 :

Directory: C:\Users\Mehvish\AppData\Local\Temp
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2/14/2023   3:23 PM                tempDirectory

首先,我们使用 System.IO.Path 类的 GetTempPath() 方法来获取当前用户临时文件夹的路径。该方法返回一个字符串类型值,我们将其存储在 $temporaryPath 变量中。您可以将 GetType() 方法链接为 $temporaryPath.GetType() 以查看其数据类型。如果调用者没有必要的权限,GetTempPath() 方法将生成 SecurityException。

接下来,我们使用带有各种参数的 New-Item cmdlet 在 $temporaryPath 中创建一个目录。请注意,New-Item cmdlet 仅在指定目录不存在时才会创建该目录;否则,它将显示错误,指出指定名称 XXX 的项目已存在。

New-Item 用于创建新项目并设置其值。此处,指定的项目类型根据项目的位置而有所不同。例如,New-Item 在文件系统中创建文件/文件夹;在注册表中,它创建键和条目。此 cmdlet 还用于设置新创建的项目的值;例如,我们可以将初始数据添加到使用 New-Item 创建的文件中。

-ItemType 参数用于指定新项目的提供者指定的类型。我们可以根据当前的提供者为此参数使用不同的值。例如,如果我们现在位于 FileSystem 驱动器中,我们可以对 -ItemType 参数使用以下值(我们在上面的例子):

    File
    Directory
    SymbolicLink
    Junction
    HardLink

    -Path 参数用于指定新项目位置的路径;当省略此参数时,默认值为用点 (.) 表示的当前位置。

    现在,如果您想在临时目录中创建临时文件,可以使用以下命令来执行此操作。

    使用 GetTempFileName() 方法:

    $temporaryDirectory = [System.IO.Path]::GetTempFileName()
    $temporaryDirectory

    输出 :

    C:\Users\Mehvish\AppData\Local\Temp\tmp6CC8.tmp

    我们使用System.IO.Path类的GetTempFileName()方法在磁盘上创建一个零字节的唯一命名的临时文件,并返回所创建文件的完整路径。该返回值将是字符串数据类型。如果无法创建临时文件或发生 I/O 错误,该方法会生成 IOException;例如,如果没有唯一的临时文件名可用。

    使用 System.GUID 类

    当我们不关心目录名称以避免 Directory Already Exists 错误时,此解决方案非常有用。每当运行以下代码时,都会使用 PowerShell 在系统临时文件夹中创建一个具有唯一名称的目录。为此:

    • 使用GetTempPath()方法获取系统临时文件夹的路径。
    • 使用 NewGuid() 创建唯一标识符。
    • 使用New-Item 创建目录。

    使用 System.GUID 类:

    $parent = [System.IO.Path]::GetTempPath()
    [string] $name = [System.Guid]::NewGuid()
    New-Item -ItemType Directory -Path (Join-Path $parent $name)

    输出 :

    Directory: C:\Users\Mehvish\AppData\Local\Temp
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    d-----         1/19/2023  12:44 AM                ccf57d7c-3183-4a65-85e3-b40834a3a007

    此代码围栏在系统的临时文件夹中创建了一个具有唯一名称的新目录。 [System.IO.Path]::GetTempPath() 使用 System 的 GetTempPath() 方法将系统的临时文件夹路径分配给变量 $parent .IO.Path 类。

    [System.Guid]::NewGuid() 创建了一个新的唯一标识符,并使用 System 的 NewGuid() 方法将其分配给变量 $name .Guid 类。接下来,New-Item(我们在第一部分中了解到)使用 New-Item cmdlet 在指定的父目录中创建了一个新目录。

    这就是如何在 PowerShell 中创建临时目录的全部内容。

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

    取消回复欢迎 发表评论:

    关灯