【问题标题】:Powershell file path with space, multiple drives带有空间的 Powershell 文件路径,多个驱动器
【发布时间】:2018-02-11 15:01:12
【问题描述】:

我正在尝试使用调用运算符 (&) 来运行 R 脚本,由于某种原因,我无法指向 D:\ 驱动器上的正确路径,但它在 C:\ 上运行良好驱动器(将 R 文件夹从 D:\ 复制到 C:\ 进行测试)。

D:\ 驱动器错误看起来像空格错误,即使字符串/变量周围有引号。

“程序”和“文件”之间的双倍间距,调用命令读取正确。

理想情况下,我想调用 D:\ 驱动器上的 Rscript.exe,但我不知道为什么它会给我一个错误 - 特别是当 C:\ 驱动器工作正常并且双倍间距读取正确时。

另外值得注意的是,“D:\Program Files (x86)”也不能正确读取,有类似的症状。

更新:正在运行

    gci -r d:\ -include rscript.exe | % fullname

返回:

D:\Program Files\R\R-3.2.3\bin\i386\Rscript.exe

D:\Program Files\R\R-3.2.3\bin\x64\Rscript.exe

D:\Program Files\R\R-3.2.3\bin\Rscript.exe

最后一个是我的变量 $RscriptD 设置的。

【问题讨论】:

  • 错误消息看起来像 stderr 从可执行文件输出转换为 PowerShell ErrorRecord
  • 我敢打赌,它不是你想的那样;运行gci -r d:\ -include rscript.exe | % fullname 并发布结果。
  • 您是否尝试将"D:\Program Files\R\R-3.2.3\bin\i386\Rscript.exe""D:\Program Files\R\R-3.2.3\bin\x64\Rscript.exe" 设置为$RscriptD?结果一样吗?
  • @matt9 ".\i386\Rscript.exe" 和 ".\x64\Rscript.exe" 工作!不知道最后一个链接是怎么回事,但出于我的目的,使用其他链接就可以了。你知道为什么“.\Rscript.exe”不能正确读取吗?感谢大家的帮助!
  • 我认为 @AlexL Rscript.exe 不能很好地处理空格。请参阅下面的答案。如果您有时间,请查看this 并尝试使用D:\Progra~1 而不是D:\Program Files

标签: powershell filepath


【解决方案1】:

图片中的第一条错误信息是:

Rscript.exe : 术语“D:\Program”未被识别为内部或外部命令

此消息表示呼叫操作员 (&) 调用了 Rscript.exe,但 Rscript.exe 未能通过使用 'D:\Program' 执行某些操作。

我不知道 Rscript.exe 内部进程的详细信息,但是,我认为 Rscript.exe 尝试运行 D:\Program Files\R\R-3.2.3\bin\i386\Rscript.exeD:\Program Files\R\R-3.2.3\bin\x64\Rscript.exe 但无法处理 Program Files 的空白。因为manual 说:

子架构也用于 Windows,但通过在适当的 bin 目录中选择可执行文件,R_HOME/bin/i386R_HOME/bin/x64为了向后兼容有可执行文件 R_HOME/bin/R.exe 和 R_HOME/bin/Rscript.exe:它们将从子目录之一运行可执行文件,首先取自 R_ARCH 环境变量,然后取自 --arch 命令行选项,最后取自安装默认值(对于组合的 32/64 位 R 安装,它是 32 位)。

据此,我认为最好直接调用 i386/Rscript.exe 或 x64/Rscript.exe 而不是 bin/Rscript.exe 只是为了向后兼容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多