我正在尋找一個腳本,將採取一堆.js文件,壓縮他們,然後用新的在同一個文件夾中替換舊的。我嘗試了一些東西,但是我發現自己不斷遇到新問題,所以我認爲最好轉向那些對我有更好理解並且開始新鮮的人。PowerShell自動JavaScript壓縮
任何人都可以指向正確的方向嗎?
更新: 我使用了一組類似這樣的命令:
>Get-ChildItem c:\NewFolder\ -recurse |
&java -jar yuicompressor-2.4.6
它似乎並不像它希望讓這些類型的輸出使用的雖然。我確信有一種方法可以完成這項工作,但對於PowerShell來說還是相當新的,但我並不太自信,現在我可以自己搞清楚。
更新: 使用下面的建議命令字符串,我可以讓PowerShell給我什麼似乎是一個新的壓縮.js讀出,但它不會替換現有的文件與壓縮的一個或寫它到我認爲在[filename] .min.js格式的相同目錄中的標準。
更新: 建議的命令的修改版似乎有訣竅!
>Get-ChildItem c:\NewFolder\ -exclude jquery*.js,*min.js -recurse | %{java -jar yuicompressor-2.4.6.jar ($_.fullname) -o ($_.fullname)}
然而,當在PowerShell中的命令運行,奇怪的是,我正在從PowerShell中關於Java命令的錯誤消息...
的java.exe:在行:4字符: 72 + Get-ChildItem c:\ Scripts \ -exclude jquery * .js,* min.js -recurse | %{的java < < < <罐子的YUICompressor-2.4.6.jar($ .fullname) -o($ .fullname)} + CategoryInfo:NotSpecified:(:字符串)[],的RemoteException + FullyQualifiedErrorId: NativeCommandError用法:Java的罐子的YUICompressor-xyzjar [選項] [輸入文件]
全局選項 -h,--help顯示此信息 --type指定輸入文件 類型--charset閱讀輸入文件使用 --line-break在指定的列號後插入換行符 -v,--verbos e顯示參考消息和警告 -o將輸出放入。默認爲stdout。 可以使用以下語法處理多個文件: java -jar yuicompressor.jar -o'.css $: - min.css'* .css java -jar yuicompressor.jar -o'.js $: - min。 JS' * .js文件
的JavaScript選項nomunge縮減大小而已,不 模糊處理保持半保留所有分號 禁用的優化禁用所有微觀優化
如果沒有指定輸入文件,則默認爲標準輸入。在這種情況下,需要 'type'選項。否則,僅當輸入文件擴展名既不是'js'也不是'css'時,'type'選項才需要 。
任何想法PowerShell試圖告訴我什麼?
非常感謝您的建議 - 它絕對讓我接近,但我不完全在那裏。您的命令似乎爲每個文件運行壓縮,但不會將其寫入輸出.js,替換之前未壓縮的文件,或者甚至以不同的名稱(如[filename] .min.js)。我將在原始問題中添加更多信息 – ShowStopper
您實際上讓我感覺比我想象的要緊密得多 - 您基本上給了我答案manojlds,非常感謝您的幫助!我承認你的名字,所以我有一種感覺,雖然我以前的任何問題都沒有你的答案,但你毫無疑問通過簡單地回答別人的問題來幫助我,也想感謝你在stackoverflow.com上的角色。我確信它經常沒有說出來,但是,我認爲你的幫助非常受到社區的讚賞。 – ShowStopper
@ShowStopper - 如果這解決了您的問題(您可以通過每個答案選中一個複選標記),則應將此標記爲答案。對於獎勵積分,您也可以對答案進行投票。 –