Q:

How to get only the user path variable?

Echo %PATH% returns system PATH variable + user PATH variable.
How to get only the user PATH variable?

A:

The system PATH variable is stored in Windows registry with value Path of type REG_EXPAND_SZ containing references to environment variables like %SystemRoot% or if not correct modified by an application of type REG_SZ without environment variable references under the key
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment

The user PATH variable does by default not exist in Windows registry, but is stored in Windows registry with value Path of type REG_EXPAND_SZ or REG_SZ once created by an application or manually by the user under key
HKEY_CURRENT_USER\Environment

The external command REG with command QUERY can be used to read the value of the system or the user PATH variable directly from Windows registry with standard user permissions.
It is possible with just a single command line to read the user PATH variable from Windows registry and assign its value to an environment variable UserPath with additionally expanding all environment variables in directory paths list.
@echo off

for /F "skip=2 tokens=1,2*" %%N in ('%SystemRoot%\System32\reg.exe query "HKCU\Environment" /v "Path" 2^>nul') do if /I "%%N" == "Path" call set "UserPath=%%P" & goto UserPathRead

echo There is no user PATH defined.
echo/
pause
goto :EOF

:UserPathRead
echo The user PATH is: %UserPath%
echo/
set "UserPath="
pause

The output format of reg query depends on version of Windows which makes the additional case-insensitive IF condition necessary. For details on reg query output format see for example Reading NT's Registry with REG Query written by Rob van der Woude.
Example output of reg query HKCU\Environment /v Path on Windows XP:
 
! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Environment
    Path        REG_SZ  C:\BatUtils
 

There is an empty line at beginning and one more at end of the output as well as a header line and one more empty line above the line with the registry key.
The line with the data of interest starts with 4 space characters and has next the name of the case-insensitive environment variable Path. Then a single horizontal tab character is output left to the registry value type REG_SZ. Last there is one more horizontal tab character before the string value of Path is output which could contain also 1 or more space characters.
Example output of reg query HKCU\Environment /v Path on Windows 7:
 
HKEY_CURRENT_USER\Environment
    Path    REG_SZ    C:\BatUtils
 

There is also an empty line at beginning and one more at end of the output. But there is no header. The second line contains already the registry key.
The line with the data of interest starts with 4 space characters and has next the name of the case-insenstive environment variable Path. Then 4 spaces instead of a tab are output left to the registry value type REG_SZ. Last there are again 4 spaces instead of a tab before the string value of Path is output which could contain also 1 or more space characters.
The command REG is executed in a separate command process in background by FOR. The error message output by REG to handle STDERR in case of registry key HKCU\Environment or value Path do not exist is suppressed by redirecting it to device NUL with 2>nul. The redirection operator > must be escaped here with caret character ^ to be interpreted as literal character on parsing FOR command line by Windows command interpreter, but as redirection operator on later execution of REG command line in separate background command process.
The FOR options defined with "skip=2 tokens=1,2*" result in skipping the first 2 lines of REG output and splitting the other lines up into 3 substrings (tokens) using the default delimiters space and tab.
The first space/tab delimited string is assigned to first loop variable N which is the name of the variable on reaching the line with the data of interest.
The second substring being the registry value type is assigned to loop variable O being the next character in ASCII table. This behavior is the reason why FOR loop variables are case-sensitive.
Everything after spaces/tabs after second substring is assigned to loop variable P without splitting up the rest of the line because of * in options string after tokens=1,2.
So on Windows Vista and later Windows versions the command FOR processes as first line from output of REG the line with Path while on Windows XP the first line processed is the line with the registry key which is the reason why the IF condition is necessary.
The command GOTO is used to exit FOR loop on having successfully read the user PATH variable from Windows registry and to jump to the command block for further processing after existing user PATH being read. But the command block below the FOR loop is reached if the user PATH variable does not exist at all in Windows registry.
For completeness a batch code to

read system AND user PATH from Windows registry,
concatenate both PATH variables to PATH with overwriting local PATH in current command process in current environment,
expand the environment variables in PATH value,
replace all ;; by ; in PATH value and
remove ; from end of PATH value if there is one.

This batch code does not check like Windows if user PATH contains 1 or more directory paths being already present in system PATH before concatenating them. So it is possible that a directory path is in local PATH finally present more than once.
@echo off
rem Get directly from Windows registry the system PATH variable value.
set "SystemPath="
for /F "skip=2 tokens=1,2*" %%N in ('%SystemRoot%\System32\reg.exe query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v "Path" 2^>nul') do (
    if /I "%%N" == "Path" (
        set "SystemPath=%%P"
        goto GetUserPath
    )
)

rem Get directly from Windows registry the user PATH variable value.
:GetUserPath
set "UserPath="
for /F "skip=2 tokens=1,2*" %%N in ('%SystemRoot%\System32\reg.exe query "HKCU\Environment" /v "Path" 2^>nul') do (
    if /I "%%N" == "Path" (
        set "UserPath=%%P"
        goto SetPath
    )
)

rem Concatenate the two PATH values to a single value and expand variables.
rem Delete the two environment variables not further needed.
rem Next replace all two consecutive semicolons by a single semicolon.
rem Last remove semicolon from end of directory list if there is one.

:SetPath
call set "PATH=%SystemPath%;%UserPath%"
set "SystemPath="
set "UserPath="
set "PATH=%PATH:;;=;%"
if "%PATH:~-1%" == ";" set "PATH=%PATH:~0,-1%"

For understanding the used commands and how they work, open a command prompt window, execute there the following commands, and read entirely all help pages displayed for each command very carefully.

call /?
echo /?
for /?
goto /?
if /?
pause /?
reg /?
reg query /?
rem /?
set /?

Read also the Microsoft article about Using Command Redirection Operators for an explanation of 2>nul and the answer on Stack Overflow topic Single line with multiple commands using Windows batch file for meaning of operator & on a command line.

