Гибрид bat и js.
Код:

@set @E=1; /*
@Echo Off
Set "Drive=E"
copy E:\testfile.pdf E:\zzzzzzzzzzzzzzz >nul
FOR /F "usebackq delims=" %%n IN (`2^>nul Cscript //NoLogo /E:jscript "%~dpnx0" "%Drive%" 0`) DO Set "N_Min=%%n"
del E:\zzzzzzzzzzzzzzz
FOR /F "usebackq delims= " %%n IN (`2^>nul Cscript //NoLogo /E:jscript "%~dpnx0" "%Drive%" 0`) DO Set "N_Max=%%n"
FOR /F "usebackq delims= " %%n IN (`2^>nul Cscript //NoLogo /E:jscript "%~dpnx0" "%Drive%" 1 %N_Max% %N_Min% 2`) DO Set "Delta=%%n"
Echo %N_Max%
Echo %N_Min%
Echo %Delta%
GoTo :Eof
*/
// Arg 1 = Drive
// Arg 2 = 0 Echo Free space of drive
// Arg 2 = 1
// Arg 3 =Space1
// Arg 4 =Space2
// Arg 5 =0(Byte) 1(Kbyte) 2(Mbyte) 3(Gbyte)
var i;
var oArg = WScript.Arguments;
var nArg=oArg.Count();
if (nArg<2) {
WScript.Echo("Error!_Invalid_number_of_arguments!");
WScript.Quit(1);
}
if (oArg(1)==0){
var FSO=WScript.CreateObject("Scripting.FileSystemObject");
try {var D=FSO.GetDrive(oArg(0)+":")}
catch (e) {
if (e != 0) {
WScript.Echo("Error!_" + oArg(0) + ":_not_exist!");
WScript.Quit(2);
}
}
WScript.Echo(D.FreeSpace);
WScript.Quit(0);
}
if (oArg(1)==1){
if (nArg<5) {
WScript.Echo("Error!_Invalid_number_of_arguments!");
WScript.Quit(1);
}
var D=oArg(2)-oArg(3);
if (oArg(4)==0) {WScript.Echo(D);WScript.Quit(0)}
if (oArg(4)==1) {WScript.Echo(Math.round(D/1024));WScript.Quit(0)}
if (oArg(4)==2) {WScript.Echo(Math.round(D/1024/1024));WScript.Quit(0)}
if (oArg(4)==3) {WScript.Echo(Math.round(D/1024/1024/1024));WScript.Quit(0)}
WScript.Echo("Error!_Wrong_argument_of_size!");
WScript.Quit(3);
}
Первый и второй вызов в For - свободное место на указанном диске
третий вызов - калькулятор разности двух чисел
Приходится привлекать для этого js, так как в cmd с большими числами работать затруднительно
В приведенном примере перед первым вызовом копируется тестовый файл,
после первого - его удаление
после третего - разность второго и первого
Если надо сетевой путь
Код:

@set @E=1; /*
@Echo Off
Set "NetPath=\\Server\Test1"
Pushd "%NetPath%" || (
Echo Wrong path "%NetPath%"
Pause
GoTo :Eof
)
FOR /F "usebackq delims=:" %%n IN (`cd`) DO Set "Drive=%%n"
copy E:\Test.pdf %Drive%:\zzzzzzzzzzzzzzz >nul
FOR /F "usebackq delims=" %%n IN (`2^>nul Cscript //NoLogo /E:jscript "%~dpnx0" "%Drive%" 0`) DO Set "N_Min=%%n"
del %Drive%:\zzzzzzzzzzzzzzz
FOR /F "usebackq delims= " %%n IN (`2^>nul Cscript //NoLogo /E:jscript "%~dpnx0" "%Drive%" 0`) DO Set "N_Max=%%n"
FOR /F "usebackq delims= " %%n IN (`2^>nul Cscript //NoLogo /E:jscript "%~dpnx0" "%Drive%" 1 %N_Max% %N_Min% 1`) DO Set "Delta=%%n"
Popd
Echo %N_Max%
Echo %N_Min%
Echo %Delta%
GoTo :Eof
*/