Hello everyone,
I run sas on unix ,
I know the code below can get full path plus program name of the current program.
%let pathname = %sysfunc(getoption(sysin));
%put pathname;
But I only want path without program name. how to program?
Thanks!
There may be other ways, but you could certainly get it from &PATHNAME:
%let n_remove = %length(%scan(&pathname, -1, /));
%let pathname = %substr(&pathname, 1, %length(&pathname) - &n_remove - 1);
The extra -1 at the end removes the final / before the file name.
There may be other ways, but you could certainly get it from &PATHNAME:
%let n_remove = %length(%scan(&pathname, -1, /));
%let pathname = %substr(&pathname, 1, %length(&pathname) - &n_remove - 1);
The extra -1 at the end removes the final / before the file name.
%let path = %sysfunc(getoption(sysin));
%let n_remove3 = %eval(%length(%scan(&path, -1, /)) + %length(%scan(&path, -2, /)) + 1);
%let pathname3 = %substr(%sysfunc(getoption(sysin)), 1, %length(&path) - &n_remove3 - 1);
%put pathname3 is : |&pathname3.|;
Thank you very much!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.