Jump to content

Recommended Posts

Posted

Hi,

i have a problem with my BAT files i can´t get the Driveletter of my CD-Rom

on PC´s with D: as CD-Rom it works, but if the cd is E: my computer dosn´t find the installation files. How can i get the variable of my cd and set it for all the other batfiles :)

.::Example::.

@echo off

set cdrom=d:

ECHO Terminal Server Client

ECHO Please wait...

start /wait %cdrom%\bonus\office\Terminal\Terminal.msi /q

exit

:rolleyes:

vito


Posted

Here is an exapmle of how to tell it to find the CD-ROM drive

ECHO ESTABLISHING CD-ROM DRIVE
SET CDROM=A
IF EXIST D:\I386\WINNT.exe SET CDROM=D:
IF EXIST E:\I386\WINNT.exe SET CDROM=E:
IF EXIST F:\I386\WINNT.exe SET CDROM=F:
IF EXIST G:\I386\WINNT.exe SET CDROM=G:
IF EXIST H:\I386\WINNT.exe SET CDROM=H:
IF EXIST I:\I386\WINNT.exe SET CDROM=I:
IF EXIST J:\I386\WINNT.exe SET CDROM=J:
IF EXIST K:\I386\WINNT.exe SET CDROM=K:
IF EXIST L:\I386\WINNT.exe SET CDROM=L:
IF EXIST M:\I386\WINNT.exe SET CDROM=M:
IF EXIST N:\I386\WINNT.exe SET CDROM=N:
IF EXIST O:\I386\WINNT.exe SET CDROM=O:
IF EXIST P:\I386\WINNT.exe SET CDROM=P:
IF EXIST Q:\I386\WINNT.exe SET CDROM=Q:
IF EXIST R:\I386\WINNT.exe SET CDROM=R:
IF EXIST S:\I386\WINNT.exe SET CDROM=S:
IF EXIST T:\I386\WINNT.exe SET CDROM=T:
IF EXIST U:\I386\WINNT.exe SET CDROM=U:
IF EXIST V:\I386\WINNT.exe SET CDROM=V:
IF EXIST W:\I386\WINNT.exe SET CDROM=W:
IF EXIST X:\I386\WINNT.exe SET CDROM=X:
IF EXIST Y:\I386\WINNT.exe SET CDROM=Y:
IF EXIST Z:\I386\WINNT.exe SET CDROM=Z:
if %CDROM%==A GOTO :CD_ERR
ECHO YOUR CD-ROM DRIVE IS %CDROM%
ECHO Please Wait...
XCOPY %CDROM% DIRTOCOYTO /Q /E /H

this is found your cd-rom drive and copy it to were you want it but you need to change the DIRTOCOYTO to the location you need. This is an example of it copying all the Windows File to my HDD

Posted

thanks but i don´t want to copy the setupfiles on c:, I want to get the cd path for all my bat files use %CDROM% as variable and only one batfile with your code. THe others must read this out and use it

:)

Vito

Posted

CLS
@echo off
ECHO.
ECHO ESTABLISHING CD-ROM DRIVE
SET CDROM=A
IF EXIST D:\bonus\office\Terminal\Terminal.msi CDROM=D:
ECHO YOUR CD-ROM DRIVE IS %CDROM%
ECHO Please Wait....
ECHO Terminal Server Client
ECHO Please Wait....
start /wait %CDROM%\bonus\office\Terminal\Terminal.msi /q
EXIT

to make it so that it would work for every PC or if the drive letter changes add the rest of the IF EXIST in my first example.

Posted

Hi is this the only way?

@echo off
ECHO ESTABLISHING CD-ROM DRIVE
SET CDROM=A
IF EXIST D:\DISKEMU.CMD SET CDROM=D:
IF EXIST E:\DISKEMU.CMD SET CDROM=E:
IF EXIST F:\DISKEMU.CMD SET CDROM=F:
IF EXIST G:\DISKEMU.CMD SET CDROM=G:
IF EXIST H:\DISKEMU.CMD SET CDROM=H:
IF EXIST I:\DISKEMU.CMD SET CDROM=I:
IF EXIST J:\DISKEMU.CMD SET CDROM=J:
IF EXIST K:\DISKEMU.CMD SET CDROM=K:
IF EXIST L:\DISKEMU.CMD SET CDROM=L:
IF EXIST M:\DISKEMU.CMD SET CDROM=M:
IF EXIST N:\DISKEMU.CMD SET CDROM=N:
IF EXIST O:\DISKEMU.CMD SET CDROM=O:
IF EXIST P:\DISKEMU.CMD SET CDROM=P:
IF EXIST Q:\DISKEMU.CMD SET CDROM=Q:
IF EXIST R:\DISKEMU.CMD SET CDROM=R:
IF EXIST S:\DISKEMU.CMD SET CDROM=S:
IF EXIST T:\DISKEMU.CMD SET CDROM=T:
IF EXIST U:\DISKEMU.CMD SET CDROM=U:
IF EXIST V:\DISKEMU.CMD SET CDROM=V:
IF EXIST W:\DISKEMU.CMD SET CDROM=W:
IF EXIST X:\DISKEMU.CMD SET CDROM=X:
IF EXIST Y:\DISKEMU.CMD SET CDROM=Y:
IF EXIST Z:\DISKEMU.CMD SET CDROM=Z:
ECHO Terminal Server Client
ECHO Please Wait....
start /wait %CDROM%\bonus\office\Terminal\Terminal.msi /q

in the second batfile

@echo off
ECHO ESTABLISHING CD-ROM DRIVE
SET CDROM=A
IF EXIST D:\DISKEMU.CMD SET CDROM=D:
IF EXIST E:\DISKEMU.CMD SET CDROM=E:
IF EXIST F:\DISKEMU.CMD SET CDROM=F:
IF EXIST G:\DISKEMU.CMD SET CDROM=G:
IF EXIST H:\DISKEMU.CMD SET CDROM=H:
IF EXIST I:\DISKEMU.CMD SET CDROM=I:
IF EXIST J:\DISKEMU.CMD SET CDROM=J:
IF EXIST K:\DISKEMU.CMD SET CDROM=K:
IF EXIST L:\DISKEMU.CMD SET CDROM=L:
IF EXIST M:\DISKEMU.CMD SET CDROM=M:
IF EXIST N:\DISKEMU.CMD SET CDROM=N:
IF EXIST O:\DISKEMU.CMD SET CDROM=O:
IF EXIST P:\DISKEMU.CMD SET CDROM=P:
IF EXIST Q:\DISKEMU.CMD SET CDROM=Q:
IF EXIST R:\DISKEMU.CMD SET CDROM=R:
IF EXIST S:\DISKEMU.CMD SET CDROM=S:
IF EXIST T:\DISKEMU.CMD SET CDROM=T:
IF EXIST U:\DISKEMU.CMD SET CDROM=U:
IF EXIST V:\DISKEMU.CMD SET CDROM=V:
IF EXIST W:\DISKEMU.CMD SET CDROM=W:
IF EXIST X:\DISKEMU.CMD SET CDROM=X:
IF EXIST Y:\DISKEMU.CMD SET CDROM=Y:
IF EXIST Z:\DISKEMU.CMD SET CDROM=Z:
ECHO Metaframe Client
ECHO Please Wait....
start /wait %CDROM%\bonus\office\Citrix\Metaframe.msi /q

and if i have 20 more batfiles. Can´t i make like "cdrom=get cdpath from c:\cdpath.txt"

In this textfile only stands d:

@echo off
ECHO Metaframe Client
ECHO Please Wait....
start /wait %CDROM%\bonus\office\Citrix\Metaframe.msi /q

:):rolleyes::D:D

vito

Posted

thanks i have a good solution in the resource kit

:D

COLOR 9F
TITLE .:: CD Path ::.
MODE CON COLS=80 LINES=4
CLS
@ECHO OFF
IF EXIST C:\DISKEM1X.BIN set CDROM=C:
IF EXIST D:\DISKEM1X.BIN set CDROM=D:
IF EXIST E:\DISKEM1X.BIN set CDROM=E:
IF EXIST F:\DISKEM1X.BIN set CDROM=F:
IF EXIST G:\DISKEM1X.BIN set CDROM=G:
IF EXIST H:\DISKEM1X.BIN set CDROM=H:
IF EXIST I:\DISKEM1X.BIN set CDROM=I:
IF EXIST J:\DISKEM1X.BIN set CDROM=J:
IF EXIST K:\DISKEM1X.BIN set CDROM=K:
IF EXIST L:\DISKEM1X.BIN set CDROM=L:
IF EXIST M:\DISKEM1X.BIN set CDROM=M:
IF EXIST N:\DISKEM1X.BIN set CDROM=N:
IF EXIST O:\DISKEM1X.BIN set CDROM=O:
IF EXIST P:\DISKEM1X.BIN set CDROM=P:
IF EXIST Q:\DISKEM1X.BIN set CDROM=Q:
IF EXIST R:\DISKEM1X.BIN set CDROM=R:
IF EXIST S:\DISKEM1X.BIN set CDROM=S:
IF EXIST T:\DISKEM1X.BIN set CDROM=T:
IF EXIST U:\DISKEM1X.BIN set CDROM=U:
IF EXIST V:\DISKEM1X.BIN set CDROM=V:
IF EXIST W:\DISKEM1X.BIN set CDROM=W:
IF EXIST X:\DISKEM1X.BIN set CDROM=X:
IF EXIST Y:\DISKEM1X.BIN set CDROM=Y:
IF EXIST Z:\DISKEM1X.BIN set CDROM=Z:
echo Your CD-Rom is ( %cdrom% )
setx.exe cdrom %cdrom% -m
exit

it sets a sysvarb. %CDROM% for windows and all progs and Batfiles can get it

:) vito :rolleyes:

Posted

It's important to note that SETX is not installed by default. You can get it from the support tools directory on the CD. You would need to put this in your $$ directory or in any other that the PATH variable already looks.

Posted

There's another method: simply set the drive letter of your CD-ROM to a fixed value. The mount manager is responsible for the driver-letter assignment. Load the hive "setupreg.hiv" and add the mount points for the mount manager (subkey "MountedDevices").

I'll post a more detailed description in a separate thread ...

Posted

DPR: such a method would not be optimal for someone who has more than one PC. The configurations may be different. The batch file method works good and should work every time, every configuration.

Posted
DPR: such a method would not be optimal for someone who has more than one PC. [...]

That's of course correct ! The mentioned method is intended to be used for a specific home PC. It shouldn't be used for unattended corporate-setups ...

Posted

By the way: here's my method to get the setup drive ...

for /F "tokens=1-3*" %%i in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Setup /v SourcePath ^| findstr /r "REG_SZ"') do set result=%%k

set %SETUPDRV%=%result%

Posted

There was a file called findcd.exe that I saw included in a bootdisk once. Running it set's the %cdrom% variable to your cdrom drive. You could include it in your $OEM$\$1\install directory. Then, it will get copied to your C:\install folder during guisetup. From there, just have your batch file run %systemdrive%\install\findcd.exe to set the %cdrom% variable.

Posted

DPR: That is a fantastic solution! Awesome.

This method could be used to gather any variable by editing "REG_SZ" to be just "REG_" (just a note for everyone else if you want to use this in a different way)

Posted

is there a command that can use the cd rom name itself eg WINXP_SP1 then it would matter what drive letter it would be.

(Do I use this word here?) A mac can do this but it would be very helpful.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...