You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为目录及子目录中的.docx文件批量生成同名空.txt文件?

需求说明

我有一个包含大量子文件夹的目录,其中存有冗余的.docx文件。希望扫描整个目录(包含所有子文件夹),每当找到一个.docx文件时,在该文件的同一位置创建一个同名的空.txt文件,后续我将手动转移这些.docx文件。

示例

原文件结构

C:\directory\file1.docx
C:\directory\subdir\file2.docx

执行操作后结构

C:\directory\file1.docx
C:\directory\file1.txt
C:\directory\subdir\file2.docx
C:\directory\subdir\file2.txt

遇到的问题

我尝试修改了一段PowerShell脚本:

Get-ChildItem -Path "C:\Temp" -Recurse -File |Where-Object {$_.Extension -ne '.txt'} |ForEach-Object {
    [System.IO.File]::WriteAllText("C:\Temp" + $_.BaseName + ".txt", $_.FullName)
} 

但无法实现两个核心需求:

  • 在原.docx文件的同一位置创建.txt文件
  • 生成的.txt文件为空

解决方案

PowerShell 方案

用以下脚本即可满足需求:

Get-ChildItem -Path "C:\你的目标目录路径" -Recurse -File -Filter "*.docx" | ForEach-Object {
    $txtFilePath = Join-Path -Path $_.DirectoryName -ChildPath "$($_.BaseName).txt"
    New-Item -Path $txtFilePath -ItemType File -Force
}

关键说明

  • -Filter "*.docx":精准筛选.docx文件,避免处理其他类型文件
  • Join-Path:安全拼接原文件的目录路径和目标.txt文件名,避免手动拼接路径时出现格式错误
  • New-Item:默认创建空文件,完全符合需求
  • -Force:如果目标位置已存在同名.txt文件,会直接覆盖;不需要覆盖的话可以去掉这个参数

批处理(Batch)方案

如果偏好使用批处理,可执行以下命令:

@echo off
for /r "C:\你的目标目录路径" %%f in (*.docx) do (
    type nul > "%%~dpnf.txt"
)

关键说明

  • for /r:递归遍历指定目录下的所有.docx文件
  • %%~dpnf:自动提取.docx文件的目录路径、文件名(不含扩展名),拼接.txt后就是目标空文件的完整路径
  • type nul >:快速创建空文件

内容的提问来源于stack exchange,提问作者Ninjalope

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:10:20