微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xcopy在AppVeyor中失败,可以在家工作:无效的参数数量

如何解决xcopy在AppVeyor中失败,可以在家工作:无效的参数数量

命令 在Windows上的appveyor(Visual Studio 2019)上,xcopy "$SITEPACKAGES\\google" "build\\lib\\google" /i /e /h失败,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 schript运行的,就像来自appveyor.yml的普通命令一样,

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

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

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

解决方法

从我的尝试中可以看出,我相信缺少一些反斜杠:

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

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

,

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

同时,我想发布一种对我有帮助的解决方法,该解决方法是通过Python复制:

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

,

找到了最干净的解决方案:不要在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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。