[玩转系统] 如果 PowerShell 中不存在则创建文件 [4 种方法]
作者:精品下载站 日期:2024-12-14 05:25:53 浏览:18 分类:玩电脑
如果 PowerShell 中不存在则创建文件 [4 种方法]
使用 if-else
语句
我们可以使用 if-else
语句创建一个文件,如下所示:
使用New-Item
Cmdlet
如果 PowerShell 中不存在文件,则创建该文件:
- 使用带有
if
条件的Test-Path
cmdlet 来检查文件是否存在。 - 如果新文件不存在,请使用
New-Item
cmdlet 创建新文件。 - 在
else
条件中打印错误消息。
使用 if 语句:
$file = "D:\test.txt"
if(!(Test-Path -Path $file)){
New-Item -ItemType File -Path $file
Write-Output "File '$file' created successfully"
} else {
Write-Output "File '$file' already exists"
}
输出 :
Directory: D:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/16/2023 4:19 PM 0 test.txt
File 'D:\test.txt' created successfully
PowerShell 中的 Test-Path cmdlet 检查文件系统上是否存在文件或文件夹。该 cmdlet 根据所需文件是否存在返回一个布尔值。此 cmdlet 的基本语法是 Test-Path -Path
,其中 -Path
参数指定我们要检查的文件或文件夹的路径。它可以是相对路径或绝对路径。
Test-Path
cmdlet 可以与其他 cmdlet(例如 if
语句)结合使用,对文件或文件夹执行条件操作。也可以用它来检查文件是否存在。例如,我们将其与if
语句一起使用来检查系统中是否存在文件
。
如果该文件不存在,我们将使用 New-Item
cmdlet。 New-Item cmdlet 在文件系统或注册表中创建新文件、目录、符号链接、联结、硬链接、注册表项和变量。该 cmdlet 将 -Path
和 -ItemType
作为参数。例如,我们使用此 cmdlet 创建了一个新文件。
在else语句中,如果文件已经存在,程序会在控制台显示错误信息:
输出 :
File 'D:\test.txt' already exists
使用 Out-File
Cmdlet
要创建 PowerShell 中不存在的文件,请将上述代码的 New-Item
cmdlet 替换为 Out-File
cmdlet。
使用 if 语句:
$file = "D:\test.txt"
if(!(Test-Path -Path $file)) {
Out-File -FilePath $file
Write-Output "File '$file' created successfully"
} else {
Write-Output "File '$file' already exists"
}
输出 :
File 'D:\test.txt' created successfully
我们讨论了 Test-Path
cmdlet,同时解释了使用 New-Item
cmdlet 的代码部分。在本节中,我们使用了 PowerShell 的 Out-File
cmdlet。
Out-File cmdlet 将命令的输出发送到文件。它将命令或脚本的输出重定向到文件,而不是将其显示在屏幕上。它创建或覆盖指定的文件并将输出写入该文件,但为了处理覆盖,我们可以使用 Test-Path cmdlet 来检查文件是否存在。
例如,我们使用 Out-File
cmdlet 创建一个文件,提供 file
作为 -Path
。
替换 Test-Path
Cmdlet
我们可以将 if
语句中的 Test-Path
cmdlet 替换为以下任意一个,以检查文件是否存在:
- Get-Item cmdlet 检索有关文件系统中的项目(例如文件或目录)的信息。
- PowerShell 中的 Get-ChildItem cmdlet 检索有关目录中的文件和子目录的信息。
- Get-ItemProperty cmdlet 获取文件、目录或其他项目的属性,具体取决于项目类型和访问该项目的提供程序。
[System.IO.File]::Exists()
是 PowerShell 中System.IO.File
类的一个方法,用于检查指定路径中是否存在文件。dir
cmdlet 是Get-ChildItem
cmdlet 的别名。
请注意,所有这些 cmdlet 都需要带有 Ignore
值的 -ErrorAction
参数来消除所有错误。
使用 try-catch
语句
我们可以将上述代码段中的 if-else
语句替换为 try-catch
块来创建文件,如下所示:
使用New-Item
Cmdlet
如果 PowerShell 中不存在文件,则创建该文件:
- 如果文件已存在,请使用
try
语句引发任何错误。 - 使用
New-Item
cmdlet 在try
块中创建新文件。 - 使用
catch
语句来处理通过打印错误消息抛出的错误。
使用try-catch语句:
$file = "D:\test.txt"
Try {
New-Item -ItemType File -Path $file -ErrorAction Stop
Write-Output "File created successfully"
} Catch [System.IO.IOException]{
Write-Host "Error: $($_.Exception.Message)"
}
输出 :
Directory: D:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/16/2023 4:31 PM 0 test.txt
File created successfully
在 PowerShell 中,try-catch 语句处理脚本中可能发生的错误。
try
块包含可能引发异常的代码。catch
块包含在出现异常时处理异常的代码。
如果 try
块中出现异常,它会将错误抛出到 catch
块,在该块中可以记录、显示或以其他方式处理异常。 catch 块还可以针对不同类型的异常指定不同的操作,并可以输出错误消息。即使发生错误,它也允许脚本继续运行而不是停止执行。
例如,我们使用try-catch
语句来创建一个文件。 try
块包含用于在指定路径创建新文件的 New-Item
cmdlet。如果文件不存在,该命令将成功创建该文件。如果发生异常,例如文件已存在,则将执行 catch 块。它传递了 System.IO.IOException 并显示错误消息:
输出 :
Error: The file 'D:\test.txt' already exists.
使用 Out-File
Cmdlet
要创建 PowerShell 中不存在的文件,请将 try
块中包含的上述代码的 New-Item
cmdlet 替换为 >Out-File
cmdlet。
使用try-catch语句:
$file = "D:\test.txt"
Try {
Out-File -FilePath $file -NoClobber -ErrorAction Stop
Write-Output "File created successfully"
} Catch [System.IO.IOException]{
Write-Host "Error: $($_.Exception.Message)"
}
输出 :
File created successfully
Out-File
cmdlet 中的 -NoClobber
开关可防止覆盖现有文件。当出现 -NoClobber
开关时,如果指定文件路径中已存在文件,Out-File
将不会创建或覆盖该文件,而是返回错误。当我们想要确保不会意外覆盖重要文件时,此开关会很有帮助。
例如,我们使用 Out-File
cmdlet 中的 -NoClobber
开关而不是庞大的 if-else
语句来创建文件(如果有)不存在。
使用单行线
要创建文件(如果不存在),请使用单行代码,如下所示:
- 使用
Test-Path
或其他 cmdlet 检查文件是否存在。如果是,它将返回true
。 - 使用逻辑运算符
-eq
检查上述命令是否返回false
。如果是这样,请使用Out-File
或New-Item
cmdlet 创建该文件。
使用单行:
$file = "D:\test.txt"
(Test-Path -Path $file) -eq $false | New-Item -ItemType File -Path $file -ErrorAction SilentlyContinue
输出 :
Directory: D:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/16/2023 4:48 PM 4 test.txt
我们可以将 Test-Path
cmdlet 替换为 Get-Item
或我们在解释使用 if-else
语句的代码部分时讨论的其他 cmdlet 。此外,Out-File
cmdlet 可以替换 New-Item
cmdlet。本节的主要重点是编写一个一行脚本,该脚本可以在文件不存在时创建该文件。
在 PowerShell 中,-eq
是一个逻辑运算符,用于比较两个值是否相等。如果值相等,则返回 $True
;如果不相等,则返回 $False
。
例如,我们检查 Test-Path
cmdlet 的输出是否等于 False
值。如果文件已存在,则 Test-Path
cmdlet 返回 True
,并且比较返回 False
,但如果文件不存在,则Test-Path
cmdlet 返回 False
,比较返回 True
。
如果该文件不存在,脚本将使用 New-Item
cmdlet 创建该文件。但是,如果文件已存在,-ErrorAction SilentlyContinue
开关会阻止 New-Item
cmdlet 引发异常。因此,如果文件已存在,命令行将不会显示输出。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag