Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

MS-DOS bat file - regedit seeting

Posted on 2007-12-04
5
4,464 Views
Last Modified: 2008-02-01
Hi all,

I wrote a .bat file which does the below settings automatically and it works fine.

.bat file looks like the below.
-------------
REG DELETE "HKLM\Software\Classes\Excel.Sheet.8" /f /v BrowserFlags
REG ADD "HKLM\Software\Classes\Excel.Sheet.8" /v BrowserFlags /t REG_DWORD /d 0
NET USE X: \\server\directory /y
-------------


It does the following automatically:
-----------------------------
1. Start Registry Editor (Regedt32.exe).
2. Locate and then click the following registry key:
   HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.5
3. After you identify the subkey for the specific Office document type,
   add the following value for all subkeys
   Value name: BrowserFlags
   Data type: REG_DWORD
   Value: 8
4. Click OK, and then quit Registry Editor.
-----------------------------

Question:
I want to add some condition to this bat file.
That is if the above regedit setting already exists, do not do anything. Simply exit.
Also if a specific (say X:) map drive already exists, I wan to skip that too.

Is it possible?

Thanks
0
Comment
Question by:aarch1
  • 2
  • 2
5 Comments
 
LVL 26

Assisted Solution

by:souseran
souseran earned 50 total points
ID: 20405218
The IF command would be the thing you want. It performs conditional processing in batch programs. More information on it can be found here:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true

Applied to your batch file:

If exist "HKLM\Software\Classes\Excel.Sheet.8" /f /v BrowserFlags
REG DELETE "HKLM\Software\Classes\Excel.Sheet.8" /f /v BrowserFlags
REG ADD "HKLM\Software\Classes\Excel.Sheet.8" /v BrowserFlags /t REG_DWORD /d 0
else goto [SHARE]

[SHARE]

If exist X: go to END else

NET USE X: \\server\directory /y

[END]

It's been a while since I've written batch files, so check my syntax, but that's the gist of it.

0
 
LVL 84

Accepted Solution

by:
oBdA earned 450 total points
ID: 20405524
Querying for the registry key to be set before changing it doesn't save a lot of time; you can just set it everytime.
You don't need to delete it first, though; just overwrite it (just add the /f in the "reg add" line).
As far as the network mapping is concerned, you should check if X: is mapped to the *correct* share, not only whether it exists.

souseran,
- Labels in batch begin with a colon.
- "if exist" only works for files, not for registry keys ("help if" for details)
- if and else have to be on the same line in batch ("help if" for details)

reg add "HKLM\Software\Classes\Excel.Sheet.8" /v BrowserFlags /t REG_DWORD /d 0 /f
net use X: | find /i "\\server\directory" >NUL
if errorlevel 1 (
  net use X: /delete
  net use X: \\server\directory /persistent:yes
)

Open in new window

0
 
LVL 26

Expert Comment

by:souseran
ID: 20406487
@oBdA,

Thanks for the correction. As I said, it's been a while. :-)

souseran
0
 

Author Comment

by:aarch1
ID: 20408702
oBdA:

Perfect. Thanks for the quick response.

One more question though.
When I run this .bat file from browser, it shows the popup with run, save, cancel button.
After clicking the run button, this .bat runs.

Is there a way to always run the .bat file without this pop?

Your thoughts?

Thanks
0
 
LVL 84

Assisted Solution

by:oBdA
oBdA earned 450 total points
ID: 20409909
You need to add the server on which the batch is stored to the Local Intranet sites in the Internet Explorer settings.
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Today, still in the boom of Apple, PC's and products, nearly 50% of the computer users use Windows as graphical operating systems. If you are among those users who love windows, but are grappling to keep the system's hard drive optimized, then you s…
Freeze panes is an option within all variants of Excel to enable parts of a sheet to remain stationary when the cursor is in another part of the sheet. This is a very useful feature which is overlooked or under used.
This Micro Tutorial will demonstrate how to create pivot charts out of a data set. I also added a drop-down menu which allows to choose from different categories in the data set and the chart will automatically update.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question