首页/系统/Windows 运维速查/New-Item 创建文件与目录
PowerShell 基础66 条

New-Item 创建文件与目录

创建文件、目录、注册表项与符号链接等;-Force 让缺失的父目录自动补齐,是脚本初始化目录的标准工具。

Windows 运维速查系统更新于 2026-10-13

New-Item 是什么

New-Item 创建文件、目录、注册表项、符号链接等对象,是脚本初始化环境的标准工具。它有一个很实用的特性:加上强制参数后会自动补齐缺失的父目录,创建多级目录时不必逐层建。另一个常见用法是创建文件时直接写入初始内容。需要注意的是它与其他写入命令的分工——创建已存在对象的行为、以及是否会清空既有内容,都与另一条命令不同,混用会造成数据被覆盖的意外。

基本信息

适用平台Windows PowerShell 5.1 与 PowerShell 7 及以上
语法New-Item [-Path] <路径> [-ItemType File|Directory|SymbolicLink|Junction] [-Value 内容] [-Force]
适用对象文件系统、注册表、证书等提供程序下的对象
强制参数自动补齐父目录;对已存在文件不会清空内容
初始内容用内容参数在创建时写入,也可创建后用写入命令追加
权限创建符号链接需要管理员权限或开发者模式

典型使用场景

  • 脚本初始化:一次性创建多级目录结构,缺失的父目录自动补齐
  • 生成占位文件:任务开始前先建好日志文件
  • 创建注册表项,用于写入配置
  • 创建符号链接或目录联接,把数据目录指向另一块盘
  • 配合路径判断命令实现幂等逻辑:不存在才创建
  • 批量建目录:按主机名或日期建一批目录

常用示例

常用示例
# 创建多级目录,父目录自动补齐
New-Item -ItemType Directory -Path D:\Logs\App\2026 -Force
# 创建文件(已存在时不会清空内容)
New-Item -ItemType File -Path D:\Logs\app.log -Force
# 创建时写入初始内容
New-Item -ItemType File -Path D:\Logs\note.txt -Value 'created' -Force
# 幂等写法:不存在才创建
if (-not (Test-Path D:\Backup)) { New-Item -Path D:\Backup -ItemType Directory | Out-Null }
# 创建目录联接(需管理员)
New-Item -ItemType Junction -Path D:\Data -Target E:\Data
# 批量建目录
1..3 | ForEach-Object { New-Item -ItemType Directory -Path "D:\Logs\node$_" -Force }

参数与行为

参数作用注意点
-ItemType指定创建的对象类型不指定时按提供程序默认规则处理
-Force补齐父目录,允许覆盖部分场景对已存在文件不清空内容
-Value创建时写入初始内容换行需按字符串转义处理
-Target符号链接与联接指向的目标目标不存在时会创建失败
-WhatIf预演将创建的对象建立初始化脚本时先看一眼
对已存在的文件使用强制参数不会清空内容,想要清空重写要用专门的写入命令。把两条命令的语义搞混,是「明明是新建却把旧内容留下」或「想保留却把文件清空」的常见原因。
创建符号链接需要在管理员会话或开启了开发者模式的环境中执行,普通会话会报权限不足,这是权限限制而不是命令用错。

易错点

  • 创建多级目录不加强制参数:父目录不存在会直接失败,脚本报错中断
  • 以为强制参数会清空文件内容:实际保留原有内容,需要覆盖写入时应使用写入命令
  • 用创建命令替代写入命令:对已有文件反复执行不会更新内容,容易误以为写入成功
  • 在无权限会话中创建符号链接:会报权限不足,需要管理员会话或开发者模式
  • 不先判断是否存在就创建:部分场景会报错或产生意外覆盖,配合路径判断实现幂等更稳

数据来源与参考

  • Microsoft Learn:New-Item

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌