Windows10下如何在指定目录使用Pandoc批量转换docx文件为txt文件
Windows10下如何在指定目录使用Pandoc批量转换docx文件为txt文件
嗨,我来帮你搞定这个问题~你遇到的报错是因为那条命令是Linux/macOS系统里Bash终端的语法,Windows的PowerShell/CMD不识别这种写法,咱们换用Windows对应的命令就可以了,具体操作分两种方式:
方法一:使用PowerShell操作
- 打开PowerShell:按下Win+R,输入
powershell回车即可。 - 切换到目标文件夹:在PowerShell里输入下面的命令,回车进入你的docx文件所在目录:
cd "D:\DE SCANAT\Docx"
- 执行批量转换命令:复制下面的代码粘贴到PowerShell里,回车运行就会开始批量转换了:
Get-ChildItem -Filter *.docx | ForEach-Object { Write-Host "正在转换文件: $($_.Name)" pandoc -s --wrap=none $_.FullName -o "$($_.BaseName).txt" }
这个命令会逐个处理目录里的docx文件,并且输出的txt文件名是原文件名.txt(不会像你原来的命令那样生成原文件名.docx.txt这种带双重后缀的文件)。
方法二:使用CMD命令提示符操作
- 打开CMD:按下Win+R,输入
cmd回车。 - 切换到目标文件夹:输入下面的命令回车:
cd "D:\DE SCANAT\Docx"
- 执行批量转换命令:复制下面的代码粘贴到CMD里回车:
for %i in (*.docx) do ( echo 正在转换文件: %i pandoc -s --wrap=none "%i" -o "%~ni.txt" )
这里的%~ni是CMD里用来提取不带扩展名的文件名的写法,同样能保证输出的是正确的txt文件名。
另外补充一下:如果你电脑上装了Git Bash(装Git的时候默认会带),也可以打开Git Bash,切换到目标目录后直接用你原来的那条命令,不过需要调整输出文件名避免双重后缀:
for i in *.docx ; do echo "$i" && pandoc -s --wrap=none $i -o ${i%.docx}.txt ; done
备注:内容来源于stack exchange,提问作者Hellena Crainicu
相关产品推荐
相关产品推荐

