How to browse contents of ISO files in DOpus?

Well, here's an example:

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.

You didn't mention how you mount an image, maybe this will be fast enough for you:

I integrated DT in context menu, so I can mount image-files with right click.

Just create a new Datatype-group an use following command in contextmenu:

"C:\Program Files\DAEMON Tools\daemon.exe" -mount 0,"%1"

Don't forget to add all wanted extensions (.iso, .bin, .nrg, .img, ...). Turn off security-mode in DT to disable popup when mounting (faster).

You can add a "Go"-command so the image will be open in lister after mounting.

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$}"

7-Zip and WinRAR handle ISO images as if they were archives.

But not .nrg, .img, .bwt, .bin, ..., so you need something like DT.

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 &amp;&amp; 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 &amp; 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 &quot;dopusrt&quot; 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 &quot;{filepath$}&quot;</instruction> <instruction> Call :Screen</instruction> <instruction> Echo. Mounting Image, please wait... </instruction> <instruction> &quot;{$DT-Path}&quot; -mount {$DT-Vol},&quot;{filepath$}&quot;</instruction> <instruction> Call :Sleep {$Wait}</instruction> <instruction> Call :Screen</instruction> <instruction> Echo. Finished, listing in Opus...</instruction> <instruction> dopusrt /CMD Go NEWTAB PATH=&quot;{$DT-Drive}&quot;</instruction> <instruction> Goto :EOF</instruction> <instruction /> <instruction>:ChkExt</instruction> <instruction> :: Ensure user doesn&apos;t trying to mount a .txt file!</instruction> <instruction /> <instruction> Set Ext=%~x1</instruction> <instruction> Echo.{$DT-Extensions}|Find /I &quot;%Ext%&quot; &gt;Nul 2&gt;&amp;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 &gt; 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.

I've modified the code above to include all the extensions that Daemon Tools accepts in it's Select New Image File dialog.

Thanks Steve,

When I get around to working with User Commands again, I will convert this. Right ow I'm just trying to keep up with questions and work!

[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 &amp;&amp; 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 &amp; 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 &quot;dopusrt&quot; 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 &quot;{filepath$}&quot;</instruction> <instruction> Call :Screen</instruction> <instruction> Echo. Mounting Image, please wait... </instruction> <instruction> &quot;{$DT-Path}&quot; -mount {$DT-Vol},&quot;{filepath$}&quot;</instruction> <instruction> Call :Sleep {$Wait}</instruction> <instruction> Call :Screen</instruction> <instruction> Echo. Finished, listing in Opus...</instruction> <instruction> dopusrt /CMD Go NEWTAB PATH=&quot;{$DT-Drive}&quot;</instruction> <instruction> Goto :EOF</instruction> <instruction /> <instruction>:ChkExt</instruction> <instruction> :: Ensure user doesn&apos;t trying to mount a .txt file!</instruction> <instruction /> <instruction> Set Ext=%~x1</instruction> <instruction> Echo.{$DT-Extensions}|Find /I &quot;%Ext%&quot; &gt;Nul 2&gt;&amp;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 &gt; 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'm nothing if not thorough! :wink:

Just had a play with this and all that's needed is:

sync:"C:\Program Files\DAEMON Tools\daemon.exe" -mount 0,"{filepath$}"
Go G:

Works a treat - the sync: directive forces the Go command to be delayed until daemon tools is finished.

I think you got lucky.

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.

To put it another way, I started with what you have.

Slight modification to my post above.

@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! :smiley:

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?

Yeah, I agree. Most times, I do make them downloads. I was just in a hurry earlier. But the point is a good one.

You made my day... "Sync" was the "delay" command I needed! Thanks.

I realize that this topic is old in the latest version of Opus 12.21 is there anything new about ISO files for me to open it like I do with a Rar or Zip?

Thankful.

If you turn on ISO under Preferences / Zip & Other Archives / Plugins, you can enter some .iso files as if they were archives. (This is handled via 7z.dll which doesn't support all .iso types, so YMMV.)

Windows 10 should also allow you to mount any .iso as a drive letter which all software can access (including Opus) via double-clicking them (if the default handler hasn't been taken over), or via right-click and then the Mount option (from memory; not at my PC to check the exact name).