[玩转系统] PowerShell - 如果不存在则创建目录
作者:精品下载站 日期:2024-12-14 21:56:43 浏览:13 分类:玩电脑
PowerShell - 如果不存在则创建目录
在 PowerShell 脚本文件中执行基于文件夹的操作时,检查目录是否存在并在不存在时创建目录是很常见的做法。
如果文件夹不存在,那么在尝试访问文件夹文件、删除文件夹、在文件夹中创建新文件或任何类型的基于文件夹的操作时,它可能会在脚本中引发异常。
在 PowerShell 中,有多种方法可以创建目录(如果不存在)并在执行任何基于目录的操作之前检查目录是否存在以避免异常。
在本文中,我将通过使用 PowerShell 的示例向您解释如何创建目录(如果不存在)。
有四种不同的方法来检查文件夹是否存在并创建目录,如下所示
- 测试路径
- 获取项目
- 获取子项目
- [系统.IO.文件]::存在(目录)
让我们了解检查文件夹是否存在或创建文件夹的每种方法。
PowerShell 使用测试路径创建目录(如果不存在)
PowerShell Test-Path
cmdlet 检查目录是否存在。
如果目录存在则返回 $True。如果路径或目录丢失或不存在,它将返回 $False。
使用 PowerShell New-Item cmdlet,如果目录不存在,它将使用 Test-Path 创建目录。
测试路径 cmdlet 语法
Test-Path -Path <FolderPath>
在上面的语法中,
FolderPath - 文件夹位置
测试路径示例
让我们考虑一个示例来了解如何使用 PowerShell Test-Path cmdlet 检查并创建目录(如果不存在)。
我们要在D:盘创建Log-FTP03目录。
运行以下代码以了解 Test-Path cmdlet
$FolderName = "D:\Logs-FTP03\"
if (Test-Path $FolderName) {
Write-Host "Folder Exists"
# Perform Delete file from folder operation
}
else
{
#PowerShell Create directory if not exists
New-Item $FolderName -ItemType Directory
Write-Host "Folder Created successfully"
}
在上面的 PowerShell 脚本中,
$FolderName 变量包含目录路径
使用 Test-Path cmdlet,它首先检查该位置是否存在文件夹。
如果该文件夹存在,则控制台上会显示“文件夹存在”消息,并执行 if 语句中写入的任何操作,例如从文件夹中删除文件等...
如果该文件夹不存在,则在控制台上打印一条消息“文件夹不存在”
使用 New-Item cmdlet,它会创建指定路径并将 ItemType
参数指定为 Directory 的目录。
PowerShell 使用 Get-Item 创建目录(如果不存在)
PowerShell Get-Item
cmdlet 用于获取指定位置的项目。
您可以使用通配符 (*) 来获取该项目的所有内容。
我们将了解如何使用 PowerShell 中的 Get-Item cmdlet 创建目录(如果不存在)。
获取项目语法
Get-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Stream <String[]>]
[<CommonParameters>]
在上面的 Get-Item 语法中,您可以使用不同的参数来获取特定的项目。
让我们了解一下,在 PowerShell 中使用 Get-Item cmdlet 检查目录是否存在。
获取项目示例
让我们考虑一个在 D 盘中创建名为 Log-FTP03 的目录的示例。
使用 PowerShell Get-Item cmdlet 检查文件夹是否存在,如果不存在则创建目录。
$FolderName = "D:\Logs-FTP03\"
$FileName = "D:\Logs-FTP03\ftp-103.txt"
if(Get-Item -Path $FolderName -ErrorAction Ignore)
{
Write-Host "Folder Exists"
#Create new file
if(Get-Item -Path $FileName -ErrorAction Ignore){
Write-Host "File already exists"
}
else
{
New-Item -Verbose $FileName -ItemType File
}
}
else
{
Write-Host "Folder Doesn't Exists"
#PowerShell Create directory if not exists
New-Item $FolderName -ItemType Directory
}
在上面的 PowerShell 脚本中,
$FileName 变量包含新的文件名路径。
$FolderName 变量包含新文件夹名称路径
使用 Get-Item cmdlet,它首先检查该位置是否存在文件夹。
如果文件夹存在,则它会检查文件是否存在,以使用 New-Item cmdlet 创建新文件。
如果文件夹不存在,则使用具有 ItemType 参数作为 Directory 的 New-Item cmdlet 来创建目录。
酷提示:如何在 PowerShell 中获取文件创建日期!
Get-ChildItem 创建目录(如果不存在)
PowerShell Get-ChildItem cmdlet 用于从一个或多个指定位置获取项目或子项目。
我们将通过示例了解如何使用 Get-ChildItem cmdlet 创建文件夹(如果不存在)。
获取子项语法
Get-ChildItem
[[-Path] <string[]>]
[[-Filter] <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Depth <uint32>]
[-Force]
[-Name]
[-Attributes <FlagsExpression[FileAttributes]>]
[-FollowSymlink]
[-Directory]
[-File]
[-Hidden]
[-ReadOnly]
[-System]
[<CommonParameters>]
在上述 Get-ChildItem 语法中,您可以使用不同的参数从 Path 参数指定的一个或多个特定位置获取项目。
让我们了解一下,使用 Get-ChildItem cmdlet 来检查 PowerShell 中是否存在文件夹。
获取子项示例
让我们考虑一个在 D 盘上创建新目录 Logs-FTP01 的示例。
使用 Get-ChildItem cmdlet,它将检查文件夹是否存在,运行以下脚本
$FolderName = "D:\Logs-FTP01\"
if(Get-ChildItem -Path $FolderName -ErrorAction Ignore)
{
Write-Host "Folder Exists"
#Perform Folder based operation, Count files in folder
(Get-ChildItem -Path $FolderName -File | Measure-Object).Count
}
else
{
Write-Host "Folder Doesn't Exists"
#PowerShell Create directory if not exists
New-Item $FolderName -ItemType Directory
}
在上面的 PowerShell 脚本中,
$FolderName 变量包含新的目录名称
使用 Get-ChildItem cmdlet,它首先检查该位置是否存在文件夹。
如果该文件夹存在,则会对文件夹中的文件进行计数。
如果该文件夹不存在,则在控制台上打印一条消息“文件夹不存在”。
如果不存在,它将使用 New-Item cmdlet 创建目录,并将文件夹名称指定为路径。
-ErrorActionignore参数忽略检查文件夹存在操作时引发的异常。
酷提示:如何在 PowerShell 中查找大尺寸文件!
使用 [System.IO.Directory]::Exists() 方法
使用.Net类System.IO.Directory和Exists()方法,我们可以在执行任何操作之前检查目录是否存在。
让我们通过示例来了解如何使用 [System.IO.Directory]::Exists() 方法。
例如,如果您想在指定位置创建一个新目录。
在创建新目录之前,首先检查该文件夹是否存在以避免错误。
[System.IO.Directory]:: Exists() 方法将文件夹名称作为输入,并根据文件夹存在与否返回 True 或 False。
$FolderName = "D:\Logs-FTP03\"
if([System.IO.Directory]::Exists($FolderName))
{
Write-Host "Folder Exists"
Get-ChildItem -Path $FolderName | Where-Object {$_.CreationTime -gt (Get-Date).Date}
}
else
{
Write-Host "Folder Doesn't Exists"
#PowerShell Create directory if not exists
New-Item $FolderName -ItemType Directory
}
在上面的 PowerShell 脚本中,
$FolderName - 包含文件夹名称路径
使用 [System.IO.Directory]::Exists() 方法检查文件夹是否存在。如果文件存在则返回 true,否则返回 false。
如果该文件夹存在,则 Get-ChildItem 将从该目录获取今天创建的文件列表。
如果文件夹不存在,它将使用 New-Item cmdlet 作为指定的文件夹名称路径来创建目录。
酷提示:如何在 PowerShell 中列出目录中的文件!
结论
在上面的文章中,我解释了使用 PowerShell 方式如果目录不存在则创建目录的四种不同方法。
这些方法是 Test-Path、Get-Item、Get-ChildItem 和 [System.IO.Directory]::Exists()。
在执行任何基于文件夹的操作之前,最好检查目录是否存在,以避免错误。
使用目录存在检查,您可以处理文件夹操作的错误和条件。
您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。
猜你还喜欢
- 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