在Windows cmd中使用for循环递归迭代,不包括node_modules及其子目录

时间:2017-04-23 18:40:18

标签: node.js windows cmd npm eslint

亲爱的stackoverflow用户我是Linux用户,我正与我的伙伴一起开发应用程序。 他们正在使用Windows,问题是我的package.json我得到了linter脚本,看起来像这样:

"scripts": {
  "lint": "eslint '.'"
}

以下脚本在Linux上正常工作(它以递归方式删除除node_modules文件夹之外的所有文件),但在Windows上失败。 我正在网上搜索,我找到了Windows用户应该使用的脚本。

"wlint": "for /r %f in (*.js) do eslint %f"

我的队友告诉我,除了它通过node_modules目录之外,它在Windows上运行良好。

问题是:如何修改脚本以排除node_modules目录?

1 个答案:

答案 0 :(得分:2)

以下命令将路径名回显到管道中,查找不包含字符串\node_modules\的行,然后在它们上运行eslint。

FOR /R %f IN (*.js) DO (ECHO %~f | (findstr /V /L "\\node_modules\\" >NUL && eslint "%~f"))

这样的事情应该能够做你想做的事。