SAS 使用网络路径调用外部进程

问题描述 投票:0回答:1

在 SAS Windows 上,我有一个调用外部 .bat 文件的 SAS 脚本。我使用以下内容:

%SYSEXEC("\\mymachine\order\mypath\running.bat");

它无法识别路径并默认为 C:\ 路径
如果我使用 - 但我不想 - 以下
%SYSEXEC("D:\mypath\running.bat");

然后它就可以工作并且我的 .bat 文件被执行
关于如何使用 \mymachine 路径的任何提示? 谢谢

在下面的一些评论后进行编辑;我们刚刚发现的一种迂回方法是添加

pushd "%~dp0"

在外部 .bat 脚本的开头 - 它似乎创建一个指向网络路径的临时映射驱动器来运行批处理。

windows path sas unc
1个回答
0
投票

这是当我使用 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
© www.soinside.com 2019 - 2024. All rights reserved.