【问题标题】:cross platform exclamation point in command line for 7z7z命令行中的跨平台感叹号
【发布时间】:2012-12-25 18:04:32
【问题描述】:

我的脚本需要使用以下命令:

`{archiver_path}7za a -xr!*.tmp myarchive.7z myfolder`

需要在windows和linux上运行。

在 linux 上它会因“未找到事件”消息而崩溃,所以我将其修改为:

`{archiver_path}7za a -xr\!*.tmp myarchive.7z myfolder`

但是如果我在windows系统上运行它可能不会这样工作?

如果没有,是否有可能以某种方式使其跨平台?

更新:我正在尝试确定是否可以在不检查我在脚本语言中使用的平台的情况下执行此操作。

【问题讨论】:

    标签: command-line cross-platform


    【解决方案1】:

    我建议检查此链接:http://www.ruby-forum.com/topic/90255 然后做这样的事情......

    if(system="WIN_32")
    {
        `{archiver_path}7za a -xr!*.tmp myarchive.7z myfolder`
    }
    if(system="LINUX")
    {
        `{archiver_path}7za a -xr\!*.tmp myarchive.7z myfolder`
    }
    

    顺便说一句,那不是真正的代码.. :P 它只是一个例子 :D

    【讨论】:

    • 是的,我知道我可以做到,但我在想也许有某种命令行技巧,这样我就不必...... :]
    • 使用! 作为语法元素的shell 允许您关闭该处理或用其他东西重新定义该元素,这样!没有任何效果。不确定您是否能够利用像set no!processing 这样在 Windows 中不可见的东西。我认为从长远来看,以上是您最好的选择,但是使用if .. elseif ... else .... endif 测试(对于未计划的情况使用最后的 else 子句)。祝大家好运。
    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 2020-09-24
    • 2012-12-14
    相关资源
    最近更新 更多