Unix Tip: Use your Unix scripting skills to write a batch file
Attaching a remote drive or directory on a Windows box is called "drive mapping" though the process is essentially the same as what we call mounting in the Unix world. While I rarely spend any significant time working on the Windows end of a Samba connection, I recently had an opportunity to assist a user who was tired of repeatedly having to manually connect directories from a couple of Solaris servers equipped with samba for sharing directories with select Windows desktops.
The solution was to whip up a batch file that mapped the drives on login. Batch files, though far less sophisticated than their Unix shell script counterparts, nonetheless have many of the important features that I have become accustomed to working with on my Unix systems. These include such things as redirection, testable return codes, the ability to test for the existence of a file and the equivalent of /dev/null for discarding command output, errors and all.
Batch files can include comments (lines that stat with "REM" for remark or the less distracting "::"). They provide a looping mechanism that uses the syntax "FOR %%VAR IN (LIST) DO". They provide a command (CHOICE) that works like a case statement. There is even a FIND command that works like grep. While the language still seems primitive in comparison to bash and perl, I was surprised that I was easily able to write a script that did what I needed it to do and automate the process. Admittedly, it was splattered with GOTOs -- something that would have horrified my CS professors from decades ago. Still, it was a functional language and I was pleased that I managed to mimic what I would have done on a Solaris or Linux system on a Windows XP box.
The command that is used to map drives on a Windows box is called "NET USE". While there is a GUI process for mapping drives, I prefer to open a DOS command window to view and modify my drive mappings to any point and click operation.
NET USE without arguments prints a list of the drives that are mapped along with any that were previously mapped and since disconnected. The command is similar to the Unix mount command.
|









