【问题标题】:xcopy fails in AppVeyor, works at home: Invalid number of parametersxcopy 在 AppVeyor 中失败,在家工作:参数数量无效
【发布时间】:2020-10-19 09:25:28
【问题描述】:

命令 xcopy "$SITEPACKAGES\\google" "build\\lib\\google" /i /e /h 在 AppVeyor (Visual Studio 2019) 上的 Windows 上以 Invalid number of parameters 失败。

我已经在我的计算机上的 Windows 虚拟机中确认了该命令的正确语法,该命令按预期工作,并且我通过回显相同的内容确认了 $SITEPACKAGES 变量和转义反斜杠的正确设置行:echo "$SITEPACKAGES\\google" "build\\lib\\google" /i /e /h 生成 C:\Python37-x64\Lib\site-packages\google build\lib\google /i /e /h,现在引号不再按预期显示。

该命令从 shell 脚本运行,就像来自 appveyor.yml 的普通命令一样,如下所示:

build_script:
    - cmd: "sh wxPython/build/Windows/build-all.sh"

我也尝试过不转义反斜杠,但结果相同。

我迷路了。有什么想法吗?

【问题讨论】:

    标签: windows command-line xcopy appveyor


    【解决方案1】:

    我相信缺少一些反斜杠,正如您从我的尝试中看到的那样:

    C:\Users\Gebruiker>xcopy C:\Python37-x64\Lib\site-packages\google build\lib\google /i /e /h
    File not found - google
    0 File(s) copied
    
    C:\Users\Gebruiker>xcopy C:\Python37-x64\Lib\site-packages\google\ build\lib\google\ /i /e /h
    Invalid path
    0 File(s) copied
    

    无论如何,我建议确保您的路径始终使用双引号,您永远不知道目录名称中何时会出现空格。

    【讨论】:

    • 这并没有导致正常运行的结果,并且您自己的测试中的输出通过“无效路径”支持这一点。无论如何,我原始帖子顶部的命令适用于我的虚拟机,因此已知是正确的。它不适用于 AppVeyor。
    【解决方案2】:

    仍然不确定问题是什么,但在另一个例子中表明这里存在一些真正的问题。我的other question 表现出类似的行为。似乎选项被解释为文件名输入。

    同时我想发布一个对我有帮助的解决方法,即通过 Python 进行复制:

    python -c "import shutil; shutil.copytree('$SITEPACKAGES\\google', 'build\\lib\\google')"

    【讨论】:

    • 是否有可能有什么东西把你的双引号弄乱了,变成了依赖于语言环境的双引号? (我的意思是,它们与" 不同)。
    【解决方案3】:

    找到最干净的解决方案:不要在 AppVeyor 中(或者可能是一般情况下)混合 Windows 和 Linux (WSL) 环境。

    使用shbash 调用shell 脚本,然后使用cp -r $SITEPACKAGES/google build/lib/appveyor.yml 以Unix 方式复制文件夹:

      build_script: 
        - cmd: sh somecommand.sh
    

    或者按照 Windows 的方式直接调用 Windows 批处理脚本,然后使用 Windows 的复制命令 xcopy "$SITEPACKAGES\\google" "build\\lib\\google" /i /e /happveyor.yml

      build_script: 
        - somecommand.bat
    

    【讨论】:

      猜你喜欢
      • 2020-03-02
      • 1970-01-01
      • 2017-07-09
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      相关资源
      最近更新 更多