home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   alt.msdos.batch      Fun with MS-DOS batch files      42,547 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 41,458 of 42,547   
   T to foxidrive   
   Re: Any method of getting uuid's of unmo   
   02 Sep 16 09:53:01   
   
   From: T@invalid.invalid   
      
   On 09/01/2016 04:31 AM, foxidrive wrote:   
   > On 31/08/2016 19:07, T wrote:   
   >>>   
   >>> @echo off   
   >>> setlocal enabledelayedexpansion   
   >>> for /f %%a in ('mountvol ^|find "\"') do (   
   >>>    if "%%~da"=="\\" (   
   >>>         set "uuid=%%a"   
   >>>      ) else (   
   >>>         echo "%%a"|find "\">nul || echo !uuid!   
   >>>    )   
   >>> )   
   >>> pause   
   >>   
   >>   
   >> Thank you!   
   >>   
   >> How are you testing for "NO MOUNT POINTS" and then   
   >> printing the UUID from the prior line?   
   >   
   > The term %%~da returns the drive letter of a path in the usual case and   
   > when fed a UUID format that for metavariable returns \\ instead.   
   >   
   > The if - else command saves the UUID each time it encounters a line   
   > which shows that \\ in it.   
   >   
   > When using delayed expansion a variable can be saved within a loop and   
   > then accessed with the !variable! syntax instead of the %variable% syntax.   
   >   
   >   
   >   
   > The ELSE section takes over when the line doesn't have that \\ of a UUID   
   > and in this line below the script is looking for a \ character which the   
   > wanted line doesn't have.   
   >   
   > The magic is in the || and && set of operators which fire the next   
   > command depending on the errorlevel of the previous command. Conditional   
   > execution.   
   >   
   > echo "%%a"|find "\">nul || echo !uuid!   
   >   
   >   
   > When the find filter doesn't detect the term it is looking for it sets   
   > the errorlevel to 1.   The || operator executes a command when the   
   > errorlevel is not zero.   Here it echos the previously saved UUID line.   
   >   
   >   
   >   
   > For completeness sake, a zero errorlevel is generally a sign of a   
   > successful operation and the && operator executes a command on an   
   > errorlevel of zero.   
   >   
   >   
   >   
      
      
   Thank you!   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca