首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xcopy在AppVeyor中失败,在家中工作:参数数量无效

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

Stack Overflow用户
提问于 2020-10-19 17:25:28
回答 3查看 67关注 0票数 0

命令xcopy "$SITEPACKAGES\\google" "build\\lib\\google" /i /e /h失败,并显示Invalid number of parameters on Windows on AppVeyor (Visual Studio2019)。

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

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

代码语言:javascript
运行
复制
build_script:
    - cmd: "sh wxPython/build/Windows/build-all.sh"

我也试着不转义反斜杠,但结果是一样的。

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

EN

回答 3

Stack Overflow用户

发布于 2020-10-19 17:57:45

我相信有一些反斜杠丢失,正如您可以从我的尝试中看到的:

代码语言:javascript
运行
复制
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

无论如何,我建议确保你的路径中总是有双引号,你永远不会知道什么时候一个空格可能会到达一个目录的名称。

票数 0
EN

Stack Overflow用户

发布于 2020-10-20 21:22:27

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

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

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

票数 0
EN

Stack Overflow用户

发布于 2020-10-24 14:50:26

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

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

代码语言:javascript
运行
复制
  build_script: 
    - cmd: sh somecommand.sh

或者直接调用Windows批处理脚本,然后在appveyor.yml中使用Windows的复制命令xcopy "$SITEPACKAGES\\google" "build\\lib\\google" /i /e /h

代码语言:javascript
运行
复制
  build_script: 
    - somecommand.bat
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64424550

复制
相关文章

相似问题

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