1

I have a script that is run after windows is installed and performs a vast number of tasks, including installation of drivers and various programs. The intent is that the script is run unattended.

I am adding code to install printer drivers, in this case the Canon TS8300 series.

I think the problem is that that the installer runs in several parts. The first step is to extract the drivers and various utilities that come with the installer. I notice that once the extraction has completed the script continues.

If I understand the /wait parameter on the start command (and please correct me if I'm wrong), this is expected behavior. That certainly seems to be the consensus from the searches I've done.

The command is;

start /wait "TS8300 Installation" /d "%SRC%\PostInstall\Canon\" "win-ts8300-1_02-ea34_2.exe"

I've also tried with start /b /wait (apparently /wait /b is also known to not work).

As the next step in the code is to stop and delete a service that is installed, that fails because it's executing before the service has been installed as the script does not wait. So I've temporarily added a pause but that means I have to be there to press the any key.

I thought about simply using ping x.x.x.x -n yy >nul and it might work if I get the value of yy right (which will probably vary depending on the PC). It's better than using pause, but I was hoping there might be something a bit more elegant and fool proof.

Thoughts?

1 Answers1

0

The answer to the question is in the question itself.

"The installer first extracts drivers and various components".

This is done to a temp folder, but I could also use 7zip or winrar to extract the contents of the installer manually.

This creates several folders one of which is called DrvSetup, and contains the setup64.exe which installs not only the drivers, but the other components of the package as well.

Then I can run the driver setup directly which does work with the start /wait command.