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

[玩转系统] 如何在 PowerShell 中创建文件

作者:精品下载站 日期:2024-12-14 03:44:42 浏览:14 分类:玩电脑

如何在 PowerShell 中创建文件


在 PowerShell 中,有多种创建文件的方法。最常见的方法是使用 new-item cmdlet。此 cmdlet 不仅可用于创建文件,还可用于创建文件夹。但新产品并不总是最好的选择。

在 PowerShell 中创建文件的其他选项包括将 cmdlet 的结果重定向到文件,或者我们可以使用 Set-Content 创建文件并存储结果。

在本文中,我们将了解不同的选项,并且我将为您提供一些有关创建文件的提示。

PowerShell 创建文件

让我们从基础知识开始,要在 PowerShell 中创建新文件,我们将使用 cmdlet New-Item。此 cmdlet 可用于创建文件、文件夹或符号链接。我们将在本文中重点讨论创建文件。

要创建空文件,我们至少要指定文件名并将 -ItemType 属性设置为 file。如果不指定创建文件的路径,则文件将在当前目录中创建。

New-Item -Name "test01.txt" -ItemType File

# Create a file in c:\temp
New-Item -Path "c:\temp" -Name "test01.txt" -ItemType File

路径参数也接受通配符。现在您可能会想,为什么我需要在路径中使用通配符,但这允许您在路径的每个子文件夹中创建一个新文件:

New-Item -Path C:\Temp\* -Name temp.txt -ItemType File

# Result
C:\Temp\One\temp.txt
C:\Temp\Three\temp.txt
C:\Temp\Two\temp.txt

如果文件已存在,则 new-item cmdlet 将不会创建文件。在某些情况下,您可能只想覆盖文件或确保脚本继续运行而不会引发任何错误。如果要覆盖已存在的文件,则可以使用 -force 参数。

这将覆盖该文件(如果存在),这也意味着该文件中的所有内容都将丢失:

New-Item -Path "c:\temp" -Name "test01.txt" -ItemType File -Force

另一种选择是检查文件是否存在,我们可以使用 Test-Path cmdlet 来执行此操作:

$path = "c:\temp\test1.txt"

# Create the folder is the path doesn't exist
If (-not(test-path -Path $path)) {
    New-Item -Path $path -ItemType File
}

正如您在上面的示例中看到的,我们实际上不必指定文件名,我们也可以将其包含在文件路径中。然后,New-Item cmdlet 仍将创建所需的文件。

创建一个包含内容的文件

正如一开始提到的,还有其他方法可以在 PowerShell 中创建文件。当您不仅想创建文件还想向其中添加内容时,可以使用这些方法。例如,当您使用 cmdlet 检索数据并希望将其存储在文本文件中时,我们可以使用 Out-File cmdlet 或使用重定向运算符

Out-File cmdlet 会将 cmdlet 的结果重定向到指定的文件。如果该文件不存在,则会创建它。假设我们想要从我们的计算机获取所有本地用户并将其存储在文本文件中:

Get-LocalUser | Select name | Out-File c:\temp\localusers.txt

# Or with the redirect operator
Get-LocalUser | Select name > c:\temp\localusers.txt

[玩转系统] 如何在 PowerShell 中创建文件

阅读本文,了解有关 Out-File cmdlet 以及如何附加内容的更多信息。

我们还可以使用 New-Item cmdlet 或 Set-Content cmdlet 创建文件并保存内容。两个 cmdlet 的工作方式几乎相同,只有 Set-Content cmdlet 会在文件已存在时替换内容,而 New-Item 在文件已存在时会抛出错误。

# Create a file and set the content
Set-Content -Path c:\temp\newFile.txt -Value "New file with Content"

# Or use New-Item to create the file with content
New-Item -Path c:\temp\ -name "newFile.txt" -Value "New file with Content"

创建多个文件

要创建多个文件,我们有两个选择,可以在 path 参数中指定每个文件,也可以使用 ForEach 循环。如果您只需要创建两个或三个文件,那么您可以在路径参数中指定它们:

New-Item -Path "c:\temp\test01.txt","c:\temp\test02.txt" -ItemType File

但更具可读性的选项是使用一个小的 ForEach 循环和一个包含要创建的文件的数组。这样,可以更轻松地在数组中添加或更改文件,并在需要时向其中添加一些逻辑。

# Specify the directory where you want to create the files
$targetDirectory = "C:\temp\"

# Create an array of file names
$fileNames = @("File1.txt", "File2.txt", "File3.txt")

# Loop through each file name and create a file with content
foreach ($fileName in $fileNames) {
    New-Item -Path $targetDirectory -Name $filename -ItemType file
    
    $filePath = Join-Path -Path $targetDirectory -ChildPath $fileName
    Write-Host "Created file: $filePath"
}

当您不想指定文件名时,另一种选择是迭代索引并使用索引号创建一些文本文件:

1..10 | ForEach-Object {
    New-Item -Path "C:\temp\" -Name "$_.txt" -ItemType file
}

创建特殊文件

到目前为止,我们只创建了 TXT 文件。但使用 PowerShell,我们不仅仅局限于 TXT 文件。例如,我们还可以创建 CSV、JSON、HTML 或 XML 文件。为此,我们需要确保文件的内容转换为正确的格式。

基本上,您可以使用 New-Item cmdlet 创建任何文件类型。例如,如果您将文件类型设置为 .pdf,那么您将在给定目录中获得一个“PDF”文件。唯一的问题是您无法打开它,因为文件内容的格式不正确。

这意味着,如果您想创建 CSV 文件,则需要使用 Export-CSV cmdlet。或者对于 XML 文件,您需要使用 Export-CliXml cmdlet:

$xmlData | Export-CliXml -Path "c:\temp\test.xml" -Encoding UTF8

总结

使用 new-item cmdlet 在 PowerShell 中创建文件非常容易。通过使用正确的 cmdlet 将数据存储在文件内,确保文件内容与文件类型匹配。

我希望这篇文章对您有所帮助,如果您有任何疑问,请在下面发表评论。

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

取消回复欢迎 发表评论:

关灯