Thank you for this hint; I didn't know that.
I have just tested it and found that you may as well directly start a
DOS shell window with the option "/V:on" from the Windows run box.
I however don't think that is is recommendable to rely on code which
uses "!variable!", because there are other ways to invoke batch file
processing, like Drag & Drop or SendTo. And these start the CMD shell
without this option.
Or is there a way that ensures that any DOS shell is started with the
option "/V:on"?
Greetings from Germany
Wolfgang Hugemann
Glenn Linderman schrieb:
> On approximately 11/18/2009 12:58 AM, came the following characters from
> the keyboard of Wolfgang Hugemann:
>> The problem occurs in the last line of "c.bat", where German umlauts
>> are interchanged by crude characters. Is there any means by which I
>> can instruct montage to use a certain coding for the text supplied in
>> "title.txt"?
>>
>
> I can't help here, sorry. But...
>
>> ........................
>>
>> I will now shortly explain what's happening in the batch files,
>> although this is not neccessary to understand my problem:
>>
>> The two batch files are placed in the root directory of the tree and
>> are called from there.
>>
>> The FOR loop in the first batch file runs through the directory tree,
>> filters all directory names containing the string "digibis" and passes
>> each of these directories to C.BAT as the single command line parameter.
>>
>> C.BAT increases the environment variable COUNT, echoes the directory
>> name into TITLE.TXT (which is necessary because of the backslash used
>> in Windows pathnames, which would otherwise be considered as starting
>> an escape sequence).
>>
>> MONTAGE then generates an index print of all images in the
>> subdirectory and stores it in the file N.JPG in the root directory,
>> with N being an integer number.
>>
>> Please note that the operation performed in C.BAT cannot be performed
>> within the FOR loop, even not if bracketed by parantheses "(", ")":
>> The environment variable COUNT would not be increased while running
>> the FOR loop (for reasons that I could not figure out...).
>>
>
> Here's a sample batch file to demonstrate the issue regarding count. The
> problem with count is that %environment variables% in the for command,
> the whole thing, regardless of how many () lines, are substituted at the
> time the for command is parsed. Then those lines are used by the loop.
>
> Start a cmd, then start another with the following command
>
> cmd /v:on
>
> In that nested cmd, run the following lines as a batch file:
>
> @echo off
> set count=0
> for %%a in (a b c) do (
> set /A count+=1
> echo normal count %count% %%a
> echo deferred count !count! %%a
> )
> echo final count %count%
> echo final deferred count !count!
>
> For explanation, see
>
> cmd /?
>
> and look for "deferred environment variable expansion" both in the
> option list (/v) and in a later paragraph that begins with those words.
>
> So as you see, the count was getting incremented by the loop, but the
> %expansion% had already taken place, so the initial value of count had
> already been substituted into the loop commands before the count had
> been incremented.
>
_______________________________________________
Magick-users mailing list
[email protected]
http://studio.imagemagick.org/mailman/listinfo/magick-users