Folder path from file path with CMD
For the folder name and drive, you can use:
echo %~dp0
You can get a lot more information using different modifiers:
%~I – expands %I removing any surrounding quotes (“)
%~fI – expands %I to a fully qualified path name
%~dI – expands %I to a drive letter only
%~pI – expands %I to a path only
%~nI – expands %I to a file name only
%~xI – expands %I to a file extension only
%~sI – expanded path contains short names only
%~aI – expands %I to file attributes of file
%~tI – expands %I to date/time of file
%~zI – expands %I to size of file
The modifiers can be combined to get compound results:
%~dpI – expands %I to a drive letter and path only
%~nxI – expands %I to a file name and extension only
%~fsI – expands %I to a full path name with short names only
This is a copy paste from the “for /?" command on the prompt. Hope it helps.
Related
Top 10 DOS Batch tips (Yes, DOS Batch…) shows batchparams.bat (link to source as a gist):
C:Temp>batchparams.bat c:windowsnotepad.exe
%~1 = c:windowsnotepad.exe
%~f1 = c:WINDOWSNOTEPAD.EXE
%~d1 = c:
%~p1 = WINDOWS
%~n1 = NOTEPAD
%~x1 = .EXE
%~s1 = c:WINDOWSNOTEPAD.EXE
%~a1 = –a——
%~t1 = 08/25/2005 01:50 AM
%~z1 = 17920
%~$PATHATH:1 =
%~dp1 = c:WINDOWS
%~nx1 = NOTEPAD.EXE
%~dp$PATH:1 = c:WINDOWS
%~ftza1 = –a—— 08/25/2005 01:50 AM 17920 c:WINDOWSNOTEPAD.EXE