Vito Corleone Posted October 23, 2003 Share Posted October 23, 2003 Hi,i have a problem with my BAT files i can´t get the Driveletter of my CD-Romon 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 offset cdrom=d:ECHO Terminal Server ClientECHO Please wait...start /wait %cdrom%\bonus\office\Terminal\Terminal.msi /qexit vito Link to comment Share on other sites More sharing options...
DaveXP Posted October 23, 2003 Share Posted October 23, 2003 Here is an exapmle of how to tell it to find the CD-ROM driveECHO ESTABLISHING CD-ROM DRIVESET CDROM=AIF 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_ERRECHO YOUR CD-ROM DRIVE IS %CDROM%ECHO Please Wait... XCOPY %CDROM% DIRTOCOYTO /Q /E /Hthis 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 Link to comment Share on other sites More sharing options...
Vito Corleone Posted October 23, 2003 Author Share Posted October 23, 2003 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 Link to comment Share on other sites More sharing options...
DaveXP Posted October 23, 2003 Share Posted October 23, 2003 CLS@echo offECHO.ECHO ESTABLISHING CD-ROM DRIVESET CDROM=AIF EXIST D:\bonus\office\Terminal\Terminal.msi CDROM=D:ECHO YOUR CD-ROM DRIVE IS %CDROM%ECHO Please Wait....ECHO Terminal Server ClientECHO Please Wait....start /wait %CDROM%\bonus\office\Terminal\Terminal.msi /qEXITto 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. Link to comment Share on other sites More sharing options...
Vito Corleone Posted October 23, 2003 Author Share Posted October 23, 2003 Hi is this the only way?@echo offECHO ESTABLISHING CD-ROM DRIVESET CDROM=AIF 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 ClientECHO Please Wait....start /wait %CDROM%\bonus\office\Terminal\Terminal.msi /qin the second batfile@echo offECHO ESTABLISHING CD-ROM DRIVESET CDROM=AIF 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 ClientECHO Please Wait....start /wait %CDROM%\bonus\office\Citrix\Metaframe.msi /qand 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 offECHO Metaframe ClientECHO Please Wait....start /wait %CDROM%\bonus\office\Citrix\Metaframe.msi /q vito Link to comment Share on other sites More sharing options...
DaveXP Posted October 23, 2003 Share Posted October 23, 2003 i dont know on that one, but i know someone who will need i will ask him and get back to you. Link to comment Share on other sites More sharing options...
Vito Corleone Posted October 23, 2003 Author Share Posted October 23, 2003 thanks i have a good solution in the resource kit COLOR 9FTITLE .:: CD Path ::.MODE CON COLS=80 LINES=4CLS@ECHO OFFIF 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% -mexitit sets a sysvarb. %CDROM% for windows and all progs and Batfiles can get it vito Link to comment Share on other sites More sharing options...
un4given1 Posted October 23, 2003 Share Posted October 23, 2003 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. Link to comment Share on other sites More sharing options...
DPR Posted October 23, 2003 Share Posted October 23, 2003 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 ... Link to comment Share on other sites More sharing options...
un4given1 Posted October 23, 2003 Share Posted October 23, 2003 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. Link to comment Share on other sites More sharing options...
DPR Posted October 23, 2003 Share Posted October 23, 2003 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 ... Link to comment Share on other sites More sharing options...
DPR Posted October 23, 2003 Share Posted October 23, 2003 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=%%kset %SETUPDRV%=%result% Link to comment Share on other sites More sharing options...
flyakite Posted October 23, 2003 Share Posted October 23, 2003 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. Link to comment Share on other sites More sharing options...
un4given1 Posted October 23, 2003 Share Posted October 23, 2003 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) Link to comment Share on other sites More sharing options...
gareththegod Posted October 24, 2003 Share Posted October 24, 2003 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. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now