2014-07-11 94 views

回答

4

這是我如何使用Windows PowerShell

注意處理這個任務:在命令行中使用的LibreOffice 你需要關閉的LibreOffice的所有現有實例之前。這意味着關閉LibreOffice的所有GUI會話以及檢查運行背景的soffice.exeLibreOffice進程的TaskManager。

一個項目:

PS &("C:\Program Files (x86)\LibreOffice 4\program\soffice.exe") -headless -convert-to txt:Text -outdir C:\Temp C:\Temp\test\sample.doc 

這從文檔中創建的文件sample.txtC:\Tempsample.doc

多個項目:

foreach ($file in Get-ChildItem C:\Temp\test) 
{ 
    &("C:\Program Files (x86)\LibreOffice 4\program\soffice.exe") -headless -convert-to txt:Text -outdir C:\Temp C:\Temp\test\$file | Out-Null 
} 

這創造了一個.txt文件夾C:\Temp\test

中的每個文件還是那句話:使用任務管理器,以確保soffice.exe以前的版本沒有運行。這意味着要關閉LibreOffice的現有GUI版本。

說明:

+1

我只是看着這個答案我自己參考後幾乎拉我的頭髮。 **記住:使用任務管理器來確保以前版本的soffice.exe沒有運行。這意味着要關閉LibreOffice的現有GUI版本。** – kevinaskevin

0

上面的解決方案非常接近,但需要對LibreOffice 4進行一些更改。2/Linux的:

soffice --headless --convert-to txt:Text /path_to/file_to_convert.odt 

(I與ODT做到了,示例性I,隨後用DOC:http://ask.libreoffice.org/en/question/14130/how-do-i-install-filters - 用於最soffice命令/)

+0

在Linux中,在以無頭(命令行)模式運行之前,您是否必須關閉LibreOffice的所有現有進程? – kevinaskevin

+0

它現在很久以前才準確地記住,但現有流程存在某種問題。 LibreOffice甚至可能簡單地(或者也可能)與任何嘗試訪問它在GUI中已經打開的文件的外部進程發生衝突。 (DOH!) – markling

1

另外一個重要的事情要添加到@kevinaskevin 's answer是 - 解決方法是:

LO的「用戶安裝」(即:

通過IRC

從開發者,~/config/libreoffice)不能被多個進程同時訪問;所以當一個soffice.bin已經在爲特定的用戶安裝運行時,額外的soffice.bin只是將它們的cmd行參數傳遞給第一個,然後再次立即終止(也就是說,它們不應該「退出」非零退出值)

如果你想要一個獨立的無頭LO,你可以用自己的用戶安裝啓動

-env:UserInstallation=<file URL to dir>

相關問題