October 23, 200322 yr 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
October 23, 200322 yr 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
October 23, 200322 yr Author 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
October 23, 200322 yr 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.
October 23, 200322 yr Author 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
October 23, 200322 yr i dont know on that one, but i know someone who will need i will ask him and get back to you.
October 23, 200322 yr Author 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
October 23, 200322 yr 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.
October 23, 200322 yr 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 ...
October 23, 200322 yr 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.
October 23, 200322 yr 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 ...
October 23, 200322 yr 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%
October 23, 200322 yr 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.
October 23, 200322 yr 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)
October 24, 200322 yr 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