如何解决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)环境。
使用sh
或bash
调用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 /h
与appveyor.yml
配合使用:
build_script:
- somecommand.bat
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。