我可以按顺序编译顺序目录中的所有LaTeX文件,如下所示:
Get-ChildItem -include *.tex -name | ForEach-Object {
lualatex --interaction=nonstopmode --output-directory=$pwd $_ } }
我想一次编译 parallel,两个文件。不幸的是,我对Windows PowerShell非常陌生,我似乎无法找到一个好方法。有什么想法吗?
答案 0 :(得分:1)
您可以使用Start-Process
cmdlet异步启动新进程。如果未指定-Wait
参数,则该过程将异步执行。
Get-ChildItem -Path $PSScriptRoot\* -Include *.tex | `
ForEach-Object -Process { `
Start-Process -FilePath lualatex -ArgumentList ('lualatex --interaction=nonstopmode --output-directory={1} "{0}"' -f $PSItem.FullName, $pwd); `
};
我没有测试过这段代码,因为我没有lualatex可执行文件,但是这应该会让你知道它是如何工作的。
答案 1 :(得分:1)
这个答案归功于@RomanKuzmin和SplitPipeline模块。
Get-ChildItem -Include *.tex | SplitPipeline -Count 2 {
process {
lualatex --interaction=nonstopmode --output-directory=$( $_.DirectoryName ) $_.FullName } }