I have a batch file which is on a usb key. I need to know the drive name the batch is in.
Example, if it\'s E:\\mybatch.bat it should find E:\\ same thing for F:\\, G:\\
You can find all USB drive letters from any drive with this.
@echo off
for /F "usebackq tokens=1,2,3,4 " %%i in (`wmic logicaldisk get caption^,description^,drivetype 2^>NUL`) do (
if %%l equ 2 (
echo %%i is a USB drive.
)
)
%CD%
is what you're looking for. It prints the current working directory of the batch file or command running it. If your batch file is on the root of the drive, it will just print the drive letter, otherwise you'll have to parse the first 2 characters.
Example:
echo %CD%
prints
E:\
on a flash drive mounted to E:.
Update: As Andriy said in the comments, if you are just looking for the first three characters of the path, then use this instead of %CD%:
%CD:~0,3%
This will result in E:\
, for example, anywhere on the drive.