我正在寻找一个脚本,将采取一堆.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 - 如果这解决了您的问题(您可以通过每个答案选中一个复选标记),则应将此标记为答案。对于奖励积分,您也可以对答案进行投票。 –