for %%F in (%filename%) do set dirname=%%~dpF
This will set %dirname%
to the drive and directory of the file name stored in %filename%
.
Careful with filenames containing spaces, though. Either they have to be set with surrounding quotes:
set filename="C:MyDirMyFile with space.txt"
or you have to put the quotes around the argument in the for
loop:
for %%F in ("%filename%") do set dirname=%%~dpF
Either method will work, both at the same time won't :-)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…