Because of your Windows tag, I assume your
cmd.exe has extensions built-in. If that is the case, you can use two of
FOR's special substitution variable references:
Given a variable
%A, containing a path and file:
%~nA will output the file name,
%~xA will output the file extension. The following example uses the pipe character
| as a delimiter. The pipe is an invalid character for files and paths and should not appear in a path. This will allow for spaces in paths and filenames. See
FOR /? for full details.
C:\>FOR /F "delims=|" %A IN ("%FSPATH%") do echo %~nxA
Alternatively, should you not have extensions in your
cmd.exe, you can use
delims=\, count the directory separators and split your path/file string based on that number.
Edit: Per your comment about the error. Above is an example on the command line. If you want to perform the same within a batch script, you need to double the
% on the the variables:
FOR /F "delims=|" %%A IN ("%FSPATH%") do echo %%~nxA
%%~nxA variable would then contain the file name and extension and can be used throughout your script.