首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用grunt-exec和powershell执行linkchecker.exe

用grunt-exec和powershell执行linkchecker.exe
EN

Stack Overflow用户
提问于 2014-08-01 13:11:13
回答 3查看 379关注 0票数 0

我想把我的链接检查器测试写进咕噜里。我可以用powershell很好地执行它

代码语言:javascript
复制
& 'C:\Program Files (x86)\LinkChecker\linkchecker.exe' http://localhost:3000

这是我的Gruntfile

代码语言:javascript
复制
module.exports = function (grunt) {

    //load plugins
    [
        'grunt-cafe-mocha',
        'grunt-contrib-jshint',
        'grunt-exec',
    ].forEach(
        function(task){
            grunt.loadNpmTasks(task);
        }
    );

    //configure plugins
    grunt.initConfig(
        {
/*          cafemocha: {
                all: {
                    src: 'qa/tests-*.js',
                    options: {
                        ui: 'tdd',
                    }
                }
            },*/
            jshint: {
                app: [
                    'meadowlark.js',
                    'public/js/**/*.js',
                    'lib/**/*.js',
                ],
                qa: [
                    'Gruntfile.js',
                    'public/qa/**/*.js',
                    'qa/**/*.js,'
                ]
            },
            exec: {
                linkchecker: {
                    cmd: '\& \'C:\\Program Files (x86)\\LinkChecker\\linkchecker.exe\' http://localhost:3000'
                }
            },
        }
    );

    //register tasks
    grunt.registerTask(
        'default',
        [/*'cafemocha',*/ 'jshint', 'exec']
    );
};

我真的很头疼,把那个链接检查器的调用整合成咕噜声。我试过几次拨打第39行的电话:

1.以全路逃离一切:

代码语言:javascript
复制
cmd: '& \'C:\\Program Files (x86)\\LinkChecker\\linkchecker.exe\' http://localhost:3000'

结果:

"&“肯恩·桑塔克蒂什是个酒鬼与代码一起退出: 1。

翻译:无法处理&

2.用完全路径对所有内容和&进行转义:

代码语言:javascript
复制
cmd: '\& \'C:\\Program Files (x86)\\LinkChecker\\linkchecker.exe\' http://localhost:3000'

结果:

^ W044不好或不必要的转义。

3.为linkchecker.exe路径设置一个局部变量:

代码语言:javascript
复制
cmd: '$env:linkchecker http://localhost:3000'

结果:

�r den Dateinamen,Verzeichnisnamen�Die Datentr�gerbezeichnung ist falsch.与代码一起退出: 1。

翻译:局部变量$env:linkchecker没有被解析

4.将调用外包给脚本。

代码语言:javascript
复制
cmd: '.\\qa\\linkchecker.ps1'

结果: linkchecker.ps1在编辑器中获得开放。

我也试过咕噜咕噜声。问题似乎是,咕哝必须把&传递到壳上。它不能处理&,用\&转义它也没有帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-14 06:33:55

终于弄明白了:

代码语言:javascript
复制
cmd: '"C:\\Program Files (x86)\\LinkChecker\\linkchecker.exe" http://localhost:3000'
票数 2
EN

Stack Overflow用户

发布于 2014-08-05 19:49:51

您是否尝试过在字符串的外部加上双引号(")和/或使用urlencoded & (%26)

票数 1
EN

Stack Overflow用户

发布于 2014-08-12 06:39:53

尝试将ps1文件变成bat文件。如果您有一个exe文件,不确定为什么需要PowerShell。

代码语言:javascript
复制
cmd: '.\\qa\\linkchecker.bat'

..since您提到的文件是在文本编辑器中打开的。

还要知道您可以使用^ char来转义&

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

https://stackoverflow.com/questions/25081078

复制
相关文章

相似问题

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