我想使用相对文件路径作为命令行参数,但是如下面的示例和评估所示,该变量将\..\作为字符串传递,但不对其进行求值。

我可以强制命令行将变量解析并扩展为字符串吗?

: For example:  I have a R script file I want to launch from the command line:

Set RPath=C:\Program Files\R\R-3.1.0\bin\Rscript.exe
SET RScript=%CD%\..\..\HCF_v9.R

SET SourceFile=%CD%\..\Source\

ECHO String used for Source Location - %SourceFile%

"%RPath%" "%RScript%" %SourceFile%

包含\..\可以作为外部程序在R的调用中使用,因为批处理文件可以解析它自己的命令。

但是,SourceFile变量不起作用,因为SourceFile变量尚未扩展\..\,它只是将其包含在字符串中,并且R无法处理\..\

最佳答案

您可以使用for可替换参数解析为真实路径

for %%a in ("..\..\HCF_v9.R") do set "RScript=%%~fa"

10-04 11:13