【问题标题】:Chain commands after "IF" Condtitional using &"IF" 后的链式命令条件使用 &
【发布时间】:2018-11-01 03:05:46
【问题描述】:

如果未创建文件夹,我正在尝试检查是否已创建文件夹

IF NOT EXIST dist\\js (MKDIR dist\\js)

然后不管它是否创建了我要运行的文件夹

& uglifyjs dev/*.js -m -o dist/js/app.js

现在看来 & 不起作用。如果文件夹存在,则不执行第二个命令。

如果我使用以下内容作为我的第一句话:

IF NOT EXIST dist\\js (MKDIR dist\\js) ELSE (Echo exist)

我第一次将两者一起运行,如下所示:

IF NOT EXIST dist\\js (MKDIR dist\\js) ELSE (Echo hate) & echo Love & uglifyjs dev/*.js -m -o dist/js/app.js

文件夹被创建但是 app.js 文件没有被创建。 只有当我再次运行该命令时,它才会创建 app.js 文件。

现在我最好如何检查是否有文件夹,然后不管是否继续下一个命令。

【问题讨论】:

    标签: windows batch-file cmd npm-scripts


    【解决方案1】:
    (IF NOT EXIST dist\\js (MKDIR dist\\js) ELSE (Echo hate)) & echo Love & uglifyjs dev/*.js -m -o dist/js/app.js
    

    括号将 & 之前的所有代码括起来,使其作为 1 个完整条件运行。 一旦条件完成,那么&之后的代码就会执行 前一个条件的结果。

    批处理文件中的路径不需要加倍反斜杠,因为转义符(例如用于换行符的\n)不是批处理文件语言的一部分。

    【讨论】:

    • 是的,转义反斜杠是为了将它放在 npm-script 中。这样我什至不需要 ELSE 语句。伟大的。谢谢
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2013-01-15
    • 2016-07-29
    • 1970-01-01
    • 2019-09-13
    • 2021-05-05
    • 1970-01-01
    • 2020-08-09
    相关资源
    最近更新 更多