我正在尝试在 Windows 中使用 Pandoc 将大量 HTML 文件转换为 Markdown,并找到了有关如何在 Mac 上执行此操作的答案,但在尝试在 Windows PowerShell 中运行以下内容时收到错误。
find . -name \*.md -type f -exec pandoc -o {}.txt {} \;
有人可以帮我把它翻译成在 Windows 中工作吗?
我正在尝试在 Windows 中使用 Pandoc 将大量 HTML 文件转换为 Markdown,并找到了有关如何在 Mac 上执行此操作的答案,但在尝试在 Windows PowerShell 中运行以下内容时收到错误。
find . -name \*.md -type f -exec pandoc -o {}.txt {} \;
有人可以帮我把它翻译成在 Windows 中工作吗?
递归转换文件夹中的文件试试这个(Windows提示命令行):
for /r "startfolder" %i in (*.htm *.html) do pandoc -f html -t markdown "%~fi" -o "%~dpni.txt"
为了在批处理文件中使用,请将%
.
for ...
解决方案)都是针对PowerShell 的cmd.exe
,而不是针对 PowerShell 的。功能等效的PowerShell命令是:
Get-ChildItem -File -Recurse -Filter *.md | ForEach-Object {
pandoc -o ($_.FullName + '.txt') $_.FullName
}
使用 powershell 内置gci:
gci -r -i *.md |foreach{$docx=$_.directoryname+"\"+$_.basename+".docx";pandoc $_.name -o $docx}
如果您想递归地通过一个目录及其子目录来编译所有类型的文件,例如*.md
,那么您可以使用我在回答另一个问题时编写的批处理文件如何对 Windows 中文件夹中的所有文件使用 pandoc ? . 我叫它,pancompile.bat
用法如下。转到代码的另一个答案。
Usage: pancompile DIRECTORY FILENAME [filemask] ["options"]
Uses pandoc to compile all documents in specified directory and subdirectories to a single output document
DIRECTORY the directory/folder to parse recursively (passed to pandoc -s);
use quotation marks if there are spaces in the directory name
FILENAME the output file (passed to pandoc -o); use quotation marks if spaces
filemask an optional file mask/filter, e.g. *.md; leave blank for all files
"options" optional list of pandoc commands (must be in quotation marks)
Minimal example: pancompile docs complete_book.docx
Typical example: pancompile "My Documents" "Complete Book.docx" *.md "-f markdown -t docx --standalone --toc"
我创建了一个 python 脚本,我一直在使用它来将 markdown 文件树转换为单个输出文件。它在 github 上可用:
Endoro 的回答很棒,不要被添加到%i
.
为了帮助他人,我需要将 RST(重组文本)转换为 dokuwiki 语法,所以我创建了一个convert.bat
:
FOR /r "startfolder" %%i IN (*.rst) DO pandoc -f rst -t dokuwiki "%%~fi" -o "%%~dpni.txt"
适用于文件夹和子文件夹中的所有 rst 文件。