在 SAS Windows 上,我有一个调用外部 .bat 文件的 SAS 脚本。我使用以下内容:
%SYSEXEC("\\mymachine\order\mypath\running.bat");
%SYSEXEC("D:\mypath\running.bat");
在下面的一些评论后进行编辑;我们刚刚发现的一种迂回方法是添加
pushd "%~dp0"
这是当我使用 infile PIPE 从网络路径运行 SAS 程序运行命令时收到的消息。 该消息指的是 SAS 程序的默认目录,来自 CMD.EXE
Stderr output:
'\\filesrv\path\path\path\study-data'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
这是我正在运行的命令,不使用 CMD 默认目录
NOTE: The infile DUMMY is:
Unnamed Pipe Access Device,
PROCESS=robocopy /MOV /NP filesrv\path\path\path\study-data\ZZ9999 filesrv\path\path\path\study-data\ZZ9999\20240903T122332,
RECFM=V,LRECL=32767
如果我想从当前目录运行 SAS 程序之类的东西,我可以使用 PowerShell 来做到这一点,它对网络驱动器足够满意。
Stderr output:
'\\filesrv\path\path\path\study-data'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
NOTE: The infile DUMMY is:
Unnamed Pipe Access Device,
PROCESS=powershell.exe -command "& { Set-Location '\\filesrv\path\path\path\study-data\XX9999\coding-programs' ; ;ls ; Start-Process -Filepath 'E:\SASHome\SASFoundation\9.4\sas.exe' -ArgumentList '-sysin .\code-XX9999.sas' -PassThru -Wait ;ls
}",
RECFM=V,LRECL=32767