Is there a way to browse the contents of ISO image files inside of DO? Similar to the way we can browse zip contents?
There has to be an easier way to browse the contents of this files other than mounting each one every time you want to look inside (like with Daemon tools). Thanks.
DT or similar is the only way for now. Someone could write an ISO VFS plugin if they wanted but nobody has so far.
What kind of stuff do you browse inside of ISO files, out of interest? If I've got a disk with useful data files then I'll probably copy the contents to a directory. If I've kept an ISO file on a network drive in order to install software off of it then an ISO plugin wouldn't be useful because the installer needs to be able to access the disk and only DT (or similar) would work. So ISO browsing in file managers has never seemed that useful to me, but several people have mentioned it recently so they must be doing something that I don't.
At work, we get a bunch of cd's from manufacturer's with all sorts of stuff on it. Sometimes you just want to go through the files and copy a couple or look at them. Sure, I can copy all the contents into seperate folders for each cd, but it's easier this way. For one thing, I don't have to worry about the original cd's, I can just make an image and I know if I ever need it again, that image is the exact copy of what was given to me.
That's just one example. TC had a plugin for this, but it mysteriously stopped working for me, so now my only option is mounting, which I hate, expecially when trying to find something on multiple images.
This code below works, and prompts you for which virtual drive you wish to mount the image to. I created a File Type Group named "Disc Images", to which I add .iso, .nrg, et cetera. Then I can just right-click and image and mount it.
@nofilenamequoting
"%ProgramFiles%\Daemon Tools\daemon.exe" -mount {dlgstring|Enter drive number (0-3) to mount image to.},"{filepath$}"
EDIT: Steve's (Tanis's) button below is much more simple. Mine has some fail-safes in it (in case you select more than one image file or a file type that is unsupported). But both work. Take a look at mine if you want to see how to mix using Opus Raw commands with an NT Command Script.
Okay, I've worked out a button that allows you to select a disc image file, mount it in Daemon Tools, and list it in a new Folder Tab.
<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none">
<label>Mount && List .ISO</label>
<tip>Mounts .iso image in Daemon tools as volume 0 (L:), list in new Folder Tab.</tip>
<icon1>%ProgramFiles%\Daemon Tools\daemon.exe,0</icon1>
<function type="batch">
<instruction>:Opus</instruction>
<instruction> :: Opus modifiers must always start in 1st column!</instruction>
<instruction />
<instruction>@externalonly</instruction>
<instruction>@filesonly</instruction>
<instruction>@firstfileonly</instruction>
<instruction>@runonce</instruction>
<instruction>@nofilenamequoting</instruction>
<instruction />
<instruction> :: Daemon Tools can host up to 4 virtual drives (volumes 0 - 3).</instruction>
<instruction> :: Edit these Opus variable values appropriate to your PC.</instruction>
<instruction> :: Add supported Daemon Tools extensions in the format shown.</instruction>
<instruction />
<instruction>@Set DT-Path = %ProgramFiles%\Daemon Tools\daemon.exe</instruction>
<instruction>@Set DT-Vol = 0</instruction>
<instruction>@Set DT-Drive = L:</instruction>
<instruction>@Set DT-Extensions = .b5t .b6t .bwt .ccd .cue .isz .mds .pdi .cdi .iso .nrg</instruction>
<instruction>@Set Wait = 5</instruction>
<instruction />
<instruction>:Start</instruction>
<instruction> @Echo OFF & Mode Con: Cols=50 Lines=10</instruction>
<instruction> Title Directory Opus - Mount disc image file in Daemon Tools</instruction>
<instruction />
<instruction>:Mount</instruction>
<instruction> :: Opus replaces "dopusrt" with the complete path to dopusrt.exe, the</instruction>
<instruction> :: the Directory Opus Helper Application which allows internal commands</instruction>
<instruction> :: to be run externally from a script (how this button is executed).</instruction>
<instruction />
<instruction> Call :ChkExt "{filepath$}"</instruction>
<instruction> Call :Screen</instruction>
<instruction> Echo. Mounting Image, please wait... </instruction>
<instruction> "{$DT-Path}" -mount {$DT-Vol},"{filepath$}"</instruction>
<instruction> Call :Sleep {$Wait}</instruction>
<instruction> Call :Screen</instruction>
<instruction> Echo. Finished, listing in Opus...</instruction>
<instruction> dopusrt /CMD Go NEWTAB PATH="{$DT-Drive}"</instruction>
<instruction> Goto :EOF</instruction>
<instruction />
<instruction>:ChkExt</instruction>
<instruction> :: Ensure user doesn't trying to mount a .txt file!</instruction>
<instruction />
<instruction> Set Ext=%~x1</instruction>
<instruction> Echo.{$DT-Extensions}|Find /I "%Ext%" >Nul 2>&1 </instruction>
<instruction> If NOT ErrorLevel 1 Goto :EOF</instruction>
<instruction> Call :Screen</instruction>
<instruction> Color 4E</instruction>
<instruction> Echo. Unsupported file extension, %EXT%, aborting ...a</instruction>
<instruction> Echo.</instruction>
<instruction> Pause</instruction>
<instruction> Exit</instruction>
<instruction />
<instruction>:Screen</instruction>
<instruction> :: Screen header is used multiple times.</instruction>
<instruction> </instruction>
<instruction> CLS</instruction>
<instruction> Echo.</instruction>
<instruction> Echo. Image: {file$}</instruction>
<instruction> Echo. Drive: {$DT-Drive}</instruction>
<instruction> Echo.</instruction>
<instruction> Goto :EOF</instruction>
<instruction />
<instruction>:Sleep</instruction>
<instruction> :: Pauses script for approximately %1 seconds.</instruction>
<instruction />
<instruction> Setlocal enableextensions</instruction>
<instruction> Call Set /a Wait=%~1+1</instruction>
<instruction> Ping -n %Wait% 127.0.0.1 > Nul</instruction>
<instruction> Endlocal</instruction>
<instruction> Goto :EOF</instruction>
<instruction> </instruction>
<instruction> :: End of Sleep</instruction>
</function>
</button>[ol][li] Copy the code above.[/li]
[li] Right-click any Opus toolbar.[/li]
[li] Select Customize from the context menu.[/li]
[li] Right-click any Opus toolbar.[/li]
[li] Select Paste from the context menu.[/li]
[li] Right-click the new button.[/li]
[li] Select Edit from the context menu.[/li]
[li] Inspect all the Opus variables up near the top of the script, and ensure they are correct for your system.[/li][/ol]
I put in a safe-guard against trying to mount any old file in Daemon Tools. I added only .iso and .nrg to start with. I didn't take the time to look up all the other disc image file extensions that Daemon Tools supports. Just add any others to the variable in the same format as shown.
Try this out and post feedback to this thread.
If someone else does the research on all the image file types supported by Daemon Tools and reports back, I will modify this to make it an Opus User Command that is parameter driven. This would allow you to pass parameters for most of the variables: DT-vol, DT-Drive, and the file to be mounted. Then the command is reusable. User commands (and their parameters) show up in the Advanced Command Editor menus.
[quote="kenalcock"]Okay, I've worked out a button that allows you to select a disc image file, mount it in Daemon Tools, and list it in a new Folder Tab.
<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none">
<label>Mount && List .ISO</label>
<tip>Mounts .iso image in Daemon tools as volume 0 (L:), list in new Folder Tab.</tip>
<icon1>%ProgramFiles%\Daemon Tools\daemon.exe,0</icon1>
<function type="batch">
<instruction>:Opus</instruction>
<instruction> :: Opus modifiers must always start in 1st column!</instruction>
<instruction />
<instruction>@externalonly</instruction>
<instruction>@filesonly</instruction>
<instruction>@firstfileonly</instruction>
<instruction>@runonce</instruction>
<instruction>@nofilenamequoting</instruction>
<instruction />
<instruction> :: Daemon Tools can host up to 4 virtual drives (volumes 0 - 3).</instruction>
<instruction> :: Edit these Opus variable values appropriate to your PC.</instruction>
<instruction> :: Add supported Daemon Tools extensions in the format shown.</instruction>
<instruction />
<instruction>@Set DT-Path = %ProgramFiles%\Daemon Tools\daemon.exe</instruction>
<instruction>@Set DT-Vol = 0</instruction>
<instruction>@Set DT-Drive = L:</instruction>
<instruction>@@Set DT-Extensions = .b5t .b6t .bwt .ccd .cue .isz .mds .pdi .cdi .iso .nrg</instruction>
<instruction>@Set Wait = 5</instruction>
<instruction />
<instruction>:Start</instruction>
<instruction> @Echo OFF & Mode Con: Cols=50 Lines=10</instruction>
<instruction> Title Directory Opus - Mount disc image file in Daemon Tools</instruction>
<instruction />
<instruction>:Mount</instruction>
<instruction> :: Opus replaces "dopusrt" with the complete path to dopusrt.exe, the</instruction>
<instruction> :: the Directory Opus Helper Application which allows internal commands</instruction>
<instruction> :: to be run externally from a script (how this button is executed).</instruction>
<instruction />
<instruction> Call :ChkExt "{filepath$}"</instruction>
<instruction> Call :Screen</instruction>
<instruction> Echo. Mounting Image, please wait... </instruction>
<instruction> "{$DT-Path}" -mount {$DT-Vol},"{filepath$}"</instruction>
<instruction> Call :Sleep {$Wait}</instruction>
<instruction> Call :Screen</instruction>
<instruction> Echo. Finished, listing in Opus...</instruction>
<instruction> dopusrt /CMD Go NEWTAB PATH="{$DT-Drive}"</instruction>
<instruction> Goto :EOF</instruction>
<instruction />
<instruction>:ChkExt</instruction>
<instruction> :: Ensure user doesn't trying to mount a .txt file!</instruction>
<instruction />
<instruction> Set Ext=%~x1</instruction>
<instruction> Echo.{$DT-Extensions}|Find /I "%Ext%" >Nul 2>&1 </instruction>
<instruction> If NOT ErrorLevel 1 Goto :EOF</instruction>
<instruction> Call :Screen</instruction>
<instruction> Color 4E</instruction>
<instruction> Echo. Unsupported file extension, %EXT%, aborting ...a</instruction>
<instruction> Echo.</instruction>
<instruction> Pause</instruction>
<instruction> Exit</instruction>
<instruction />
<instruction>:Screen</instruction>
<instruction> :: Screen header is used multiple times.</instruction>
<instruction> </instruction>
<instruction> CLS</instruction>
<instruction> Echo.</instruction>
<instruction> Echo. Image: {file$}</instruction>
<instruction> Echo. Drive: {$DT-Drive}</instruction>
<instruction> Echo.</instruction>
<instruction> Goto :EOF</instruction>
<instruction />
<instruction>:Sleep</instruction>
<instruction> :: Pauses script for approximately %1 seconds.</instruction>
<instruction />
<instruction> Setlocal enableextensions</instruction>
<instruction> Call Set /a Wait=%~1+1</instruction>
<instruction> Ping -n %Wait% 127.0.0.1 > Nul</instruction>
<instruction> Endlocal</instruction>
<instruction> Goto :EOF</instruction>
<instruction> </instruction>
<instruction> :: End of Sleep</instruction>
</function>
</button>[ol][li] Copy the code above.[/li]
[li] Right-click any Opus toolbar.[/li]
[li] Select Customize from the context menu.[/li]
[li] Right-click any Opus toolbar.[/li]
[li] Select Paste from the context menu.[/li]
[li] Right-click the new button.[/li]
[li] Select Edit from the context menu.[/li]
[li] Inspect all the Opus variables up near the top of the script, and ensure they are correct for your system.[/li][/ol]
I put in a safe-guard against trying to mount any old file in Daemon Tools. I added only .iso and .nrg to start with. I didn't take the time to look up all the other disc image file extensions that Daemon Tools supports. Just add any others to the variable in the same format as shown.
Try this out and post feedback to this thread.
If someone else does the research on all the image file types supported by Daemon Tools and reports back, I will modify this to make it an Opus User Command that is parameter driven. This would allow you to pass parameters for most of the variables: DT-vol, DT-Drive, and the file to be mounted. Then the command is reusable. User commands (and their parameters) show up in the Advanced Command Editor menus.
I'm out of time for this at the moment.[/quote]
Jesus Christ, is that a button or the Windows source code?!
It's an educational tool, so it's heavily commented. It has error handling—I don't want to find out what happens when some user tries to mount a .dll they forgot to unselect. I also made lots of parameter variables (for now) because Daemon Tools doesn't always install to the same location (like if you get it bundled with another product like UltraISO). It will actually get longer as a User Command, but you won't see it.
I ran through a few test scenarios here, mounting images from various CD media, network drives, USB drive, my REV drive, etc. There can be a substantial delay between when Daemon Tools completes mounting the image, and when it is actually avail Opus can list it.
This is why the folks above in the thread were asking for a way to make a command pause or wait. It's going to be machine dependent.
@Steve
Yeah, that's a lot more simple now. I think I've gotten so used to not relying on sync: (now @sync) for a lot of the buttons/commands I make, that I almost never try it anymore. But, it's working like a charm for this one; good deal!
The problem with your often complex scripting methods is that they can be off-putting for the average user. Making Opus look infinitely more complicated to configure than it is.
Perhaps when a dos scripting solution is created it would be better to restrict it's provision to a downloadable button rather than page after page of code?