- cscript又只接受Windows格式的路徑,每次都要用 $(cygpath -w xxx) 來轉換路徑
- cscript輸出或錯誤都是gb2312的,每次都要轉換成utf-8:cscipt //nologo xxxxx.js 2>&1 | piconv -f gb2312 -t utf-8
Cygwin如何直接訪問com對象呢?
cygwin有lua,而lua有luacom,這個能用嗎?我剛纔試了一下,基本功能貌似沒有什麼問題。因爲cygwin本身就已經將文件名轉換成了utf-8的,所有之前一篇文章糾結於gb2312和utf-8的轉換問題也就不是問題了。
編譯安裝luacom
cygwin需要安裝 cmake make gcc g++ git lua,其他基礎的當然也要
- git clone https://github.com/davidm/luacom.git
- cd luacom
- mkdir build
- cmake ..
- make
- make install
測試FileSystemObject的枚舉中文文件夾功能
#!/usr/bin/lua
require "luacom"
local fso = luacom.CreateObject("Scripting.FileSystemObject")
local myFolder = fso:GetFolder("F:")
for _,file in luacom.pairs(myFolder.SubFolders) do
print(file.Name)
end
注:我的F:盤有很我中文文件夾,測試結果正確
測試Word文檔建立和保存
#!/usr/bin/lua
require "luacom"
wordApp = luacom.CreateObject("Word.Application")
wordApp.Visible = true
wordDoc = wordApp.Documents:Add()
wordApp.Selection:TypeText("中文真的可以嗎,我也不知道啊!")
wordDoc:SaveAs2("F:\\中文的文件名哦還挺長的.docx")
wordDoc:Close(0)
wordApp:Quit(0)