Rstudio中执行PowerShell的ReadLines命令读取dat文件报错如何解决
错误原因
- 转义冲突:R字符串、cmd、PowerShell三层都有各自的转义规则,你之前的写法多层双引号嵌套、反斜杠转义次数不对,导致PowerShell收到的命令格式错误,出现缺括号、意外令牌的报错。另外路径里的
200 ppfd包含空格,没有正确用引号包裹的话会被PowerShell识别为两个独立参数。 - 调用逻辑错误:
[System.IO.File]::ReadLines是PowerShell的.NET方法,不是独立可执行程序,不能直接作为system/shell的第一个参数传入,必须通过powershell.exe -Command来承载完整命令。
正确实现代码
你当前工作目录已经在目标文件所在文件夹,直接用文件名即可,避免长路径转义出错:
# 方案1:使用shell函数调用,更适配Windows环境 # intern=TRUE将命令输出返回给R变量,否则仅打印到控制台 file_content <- shell( 'powershell -Command "[System.IO.File]::ReadLines(\'65.dm68i.e.r.1.dat\')"', intern = TRUE )
# 方案2:使用system函数实现 file_content <- system( 'powershell -Command "[System.IO.File]::ReadLines(\'65.dm68i.e.r.1.dat\')"', intern = TRUE )
可选优化
如果没有特殊需求必须用PowerShell读文件,直接使用R原生的readLines函数更简单高效:
file_content <- readLines("65.dm68i.e.r.1.dat")
内容的提问来源于stack exchange,提问作者Mauro
相关产品推荐
相关产品推荐

