首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在批处理文件中使用JSMin

在批处理文件中使用JSMin
EN

Stack Overflow用户
提问于 2009-07-17 22:33:51
回答 1查看 2.9K关注 0票数 0

我正在尝试创建一个批处理文件,它将对一个目录中的所有.js文件运行Doug Cockford的JSMin。下面是我得到的信息:

代码语言:javascript
复制
for /f %%a IN ('dir /b /s *.js') do jsmin <%%a >%%~da%%~pamin\%%~na.min%%~xa

问题是尖括号(<>)导致批处理文件将其解释为0<和1>。事件正在运行:

代码语言:javascript
复制
jsmin <scripts\script.js >jsmin-stuff.js

在批处理文件中执行相同的操作。用^转义尖括号会使jsmin认为尖括号是路径的一部分。

有什么想法吗?我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-17 23:15:23

首先,在for本身就足够的情况下,您正在使用for /f。其次,我不建议以递归方式执行此操作,因为您显然是将最小化的脚本放在同一个树的子文件夹中。

代码语言:javascript
复制
for %x in (*.js) do jsmin <"%x" >"min\%~nx-min.js"

(从命令行,而不是批处理)在这里为我做它应该做的事情。您在0<1>中看到的实际上是正确的,因为0是标准输入流,1是标准输出流,这两个流都是重定向的。

对于递归执行此操作,下面这行代码为我做了相应的工作:

代码语言:javascript
复制
for /r %x in (*.js) do jsmin <"%x" >"%~dpx\min\%~nx-min.js"

ETA:好的,我检查过了,dir方法实际上比使用for /r更可靠。我很抱歉。在一个批处理文件中,以下内容适用于我:

代码语言:javascript
复制
for /f "usebackq delims=" %%x in (`dir /s /b *.js`) do jsmin <"%%x" >"%%~dpx\min\%%~nx-min.js"

不过,for /f通常只基于空格进行标记化。但是我的配置文件文件夹中已经有空格了,所以最好完全关闭标记化。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1145971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档