PDA

View Full Version : File paths question


yoshyaro
03-27-2010, 08:08 PM
I'm launching a couple of different things using fscommand and a .bat file, which has the full path of what I'm launching (c:\\windows\etc...). since this will be on a CD, going into different computers, how to you set up the paths correctly so it still points to your file?

northcode
03-28-2010, 05:48 AM
Type set at a DOS prompt and hit return to see a list of environment variables that you can use. There should a list in the format VARNAME=value. Anything that appears on the left side of the = sign can be used in your BAT files.

For example, if you wanted to open the Windows folder is on any machine you could use the windir environment variable like this in a BAT file.


explorer %windir%


Any environment variable can be used with % signs around it in a BAT file and Windows will take care of expanding it to the full value at runtime.

NOTE: Check with Windows help to make sure the environment variable you want to use is a standard one created by Windows and not by an application you might have installed because anyone can register new environment variables.

I hope that helps :)

yoshyaro
03-29-2010, 01:49 AM
cool. Thanks.

yoshyaro
03-29-2010, 02:49 AM
Alright.. I don't seem to get it. I checked the set list in dos, and looked up the environment list online, but I don't see one for a CD drive.

Thinking into this further... since all my bat files are doing is launching PDFs in the fscommand folder, do I need to know the CD drive letter? Or is there something equivalent to actionscript's "this." command. The pdfs are in the same folder as the .bats.

CD drive > fscommand > files and .bats

yoshyaro
03-29-2010, 01:16 PM
Aha! http://www.allenware.com/icsw/icswref.htm Dot aliasing is just what I was looking for. It references the local folder without having to know it's drive letter.

northcode
03-29-2010, 01:51 PM
If you're running from a CD you can reference any folder on the CD using an absolute path without the drive letter like \fscommand\file.odf so you don't need to use the "." or ".." relative paths (if that makes things a little easier).

yoshyaro
03-29-2010, 03:14 PM
Indeed. Thanks again!

...You wouldn't happen to know how to do the same thing with apple scripts by any chance? ..Opening windows and pdfs?

northcode
03-29-2010, 06:42 PM
Give this a whirl...

tell application "Finder"
activate
select file "file.pdf" of folder "MyPDFFiles" of disk "MyCD"
open selection
end tell

yoshyaro
03-29-2010, 06:58 PM
Excellent! Thank you. I'll check this out tonight on my woman's mac.

yoshyaro
03-30-2010, 07:46 PM
Alright, I've gotten this to work while all of my files are in a folder, so I write:


select folder "myFolder" in folder "my other folder"
open selection


but I've kind of run into the same problem as before. I'm not sure how to target the CD drive, or keep the search within the same folder.

I've tried just writing:

select folder "myFolder'
open selection


And sticking that script in the same folder as the folder I want to launch, but it returns an error (Can't remember which one, I'm back on a PC now).

I guess the way around my problem, is to name the CD something specific, and then modify the apple script any time I change the CD name. This way I can add "of disk "myCD" to the end of the script?

It's tricky to do this having only periodic access to a mac..

northcode
03-30-2010, 10:27 PM
Yep of disk "DiskName" is the trick you need to use.

There are solutions that use the current folder to figure out the path to the file dynamically but they'll require a little more work. Here's an example...


--set the name of the file to open

property fileName : "test.pdf"

--get the path to the containing folder

set myPath to (path to me as string)

set AppleScript's text item delimiters to ":"

set the parentFolder to
((text items 1 thru -2 of myPath) & "") as string
set AppleScript's text item delimiters to ""

--find the file

try
set targetFile to alias (the parentFolder & fileName)
on error
--if there's no file here by this name, it will quit
return quit
end try

--open the file

tell application "Finder"
open file targetFile
end tell

yoshyaro
03-31-2010, 01:22 AM
... I'll go the of disk "DiskName" route.


Thanks northcode!!

yoshyaro
03-31-2010, 07:00 PM
I did a test burn and encountered this error:

"can't get the file "bios.pdf" of <class cfol> "fscommand" of <<class cdis>> "myCD" of application "Finder."

My test actionscript:

bio.onRelease = function()
{
if (System.capabilities.os.substr(0, 3) == "Win")
{
output.text = "launching bios.";
fscommand("exec", "bios.exe");
}
else if (System.capabilities.os.substr(0, 3) == "Mac")
{
output.text = "mac bio button";
fscommand("exec", "bios.app");
}
}


The applescript:


tell application "finder"
select file "bios.pdf" in folder "fscommand" of disk "myCD"
open selection
end tell



I named the disk "myCD" when I burned it with nero. Where did I go wrong?