Announcement

Collapse
No announcement yet.

Use SF to execute commands instead of batch files?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Use SF to execute commands instead of batch files?

    Hi all,

    I have some old DOS batch files that I would like to use some of the coding from, specifically a means for copying a small group of files into a larger group. From my batch example:

    Code:
    for %%a in (*01.ace) do copy _snow01.ac_ SNOW\%%a /b /y
    for %%a in (*02.ace) do copy _snow02.ac_ SNOW\%%a /b /y
    for %%a in (*03.ace) do copy _snow03.ac_ SNOW\%%a /b /y
    for %%a in (*04.ace) do copy _snow04.ac_ SNOW\%%a /b /y
    This would read in all the files with .ace in the name (several hundred), filter on their last two digits, and copy the corresponding n_ac_ file into a new directory. The larger and original group of ACE files are unique, but their snow counterparts are not (a plain Jane pattern of textures).

    Adding batch files would probably work in some cases, but I fear that some systems or system utilities will flag a batch file as a trojan and fail to run it, and rather than load a set of pre-copied snow textures into SF (size matters) I would like to know if it's possible to script the above command line into SF.

    One last question, and probably related to the above - if I write this or any other code in the trail version, can I send the resulting executable to my partner if she too has a trail copy installed to test?

    TIA.

    Cheers!
    Marc

  • #2
    I believe this does basically what you described, unless I misunderstood.

    Code:
    [COLOR="#0000FF"]local[/COLOR] sSourceFolderName [COLOR="#FF0000"]=[/COLOR] SessionVar[COLOR="#FF0000"].[/COLOR]Expand([COLOR="#800080"]"%SourceFolder%"[/COLOR])[COLOR="#FF0000"];[/COLOR]
    [COLOR="#0000FF"]local[/COLOR] tFindAceFiles [COLOR="#FF0000"]=[/COLOR] File[COLOR="#FF0000"].[/COLOR]Find(sSourceFolderName[COLOR="#FF0000"],[/COLOR] [COLOR="#800080"]"*.ace"[/COLOR])[COLOR="#FF0000"];[/COLOR]
    [COLOR="#0000FF"]if[/COLOR] (tFindAceFiles [COLOR="#FF0000"]~=[/COLOR] [COLOR="#0000FF"]nil[/COLOR]) [COLOR="#0000FF"]then[/COLOR]
      [COLOR="#0000FF"]for[/COLOR] i [COLOR="#FF0000"]=[/COLOR] [COLOR="#000000"]1[/COLOR][COLOR="#FF0000"],[/COLOR] [COLOR="#FF0000"]#[/COLOR]tFindAceFiles [COLOR="#0000FF"]do[/COLOR]
        [COLOR="#008000"]-- check if file name matches (...)##.ace[/COLOR]
        [COLOR="#0000FF"]local[/COLOR] sFileFound[COLOR="#FF0000"],[/COLOR] sNumber [COLOR="#FF0000"]=[/COLOR] [COLOR="#0000FF"]string.match[/COLOR](tFindAceFiles[COLOR="#FF0000"][[/COLOR]i[COLOR="#FF0000"]],[/COLOR] [COLOR="#800080"]"(.+)(%d%d)%.ace"[/COLOR])[COLOR="#FF0000"];[/COLOR]
        [COLOR="#0000FF"]if[/COLOR] (sFileFound [COLOR="#FF0000"]~=[/COLOR] [COLOR="#0000FF"]nil[/COLOR]) [COLOR="#0000FF"]then[/COLOR]
          [COLOR="#0000FF"]local[/COLOR] tPath [COLOR="#FF0000"]=[/COLOR] String[COLOR="#FF0000"].[/COLOR]SplitPath(tFindAceFiles[COLOR="#FF0000"][[/COLOR]i[COLOR="#FF0000"]][/COLOR])
          [COLOR="#0000FF"]local[/COLOR] sFilename [COLOR="#FF0000"]=[/COLOR] tPath[COLOR="#FF0000"].[/COLOR]Filename [COLOR="#FF0000"]..[/COLOR] tPath[COLOR="#FF0000"].[/COLOR]Extension[COLOR="#FF0000"];[/COLOR]
          [COLOR="#008000"]-- a match was found[/COLOR]
          [COLOR="#0000FF"]if[/COLOR] File[COLOR="#FF0000"].[/COLOR]DoesExist([COLOR="#800080"]"_snow"[/COLOR] [COLOR="#FF0000"]..[/COLOR] sNumber [COLOR="#FF0000"]..[/COLOR] [COLOR="#800080"]".ac_"[/COLOR]) [COLOR="#0000FF"]then[/COLOR]
            [COLOR="#0000FF"]local[/COLOR] sSource [COLOR="#FF0000"]=[/COLOR] sSourceFolderName [COLOR="#FF0000"]..[/COLOR] [COLOR="#800080"]"[COLOR="#800080"]\\[/COLOR]_snow"[/COLOR] [COLOR="#FF0000"]..[/COLOR] sNumber [COLOR="#FF0000"]..[/COLOR] [COLOR="#800080"]".ac_"[/COLOR][COLOR="#FF0000"];[/COLOR]
            [COLOR="#0000FF"]local[/COLOR] sDestination [COLOR="#FF0000"]=[/COLOR] sSourceFolderName[COLOR="#FF0000"]..[/COLOR] [COLOR="#800080"]"[COLOR="#800080"]\\[/COLOR]SNOW[COLOR="#800080"]\\[/COLOR]"[/COLOR] [COLOR="#FF0000"]..[/COLOR] sFilename[COLOR="#FF0000"];[/COLOR]
            File[COLOR="#FF0000"].[/COLOR]Copy(sSource[COLOR="#FF0000"],[/COLOR] sDestination[COLOR="#FF0000"],[/COLOR] [COLOR="#0000FF"]false[/COLOR][COLOR="#FF0000"],[/COLOR] [COLOR="#0000FF"]true[/COLOR][COLOR="#FF0000"],[/COLOR] [COLOR="#0000FF"]false[/COLOR][COLOR="#FF0000"],[/COLOR] [COLOR="#0000FF"]true[/COLOR])[COLOR="#FF0000"];[/COLOR]
            [COLOR="#0000FF"]error[/COLOR] [COLOR="#FF0000"]=[/COLOR] Application[COLOR="#FF0000"].[/COLOR]GetLastError()[COLOR="#FF0000"];[/COLOR]
            [COLOR="#0000FF"]if[/COLOR] ([COLOR="#0000FF"]error[/COLOR] [COLOR="#FF0000"]~=[/COLOR] [COLOR="#000000"]0[/COLOR]) [COLOR="#0000FF"]then[/COLOR]
              Dialog[COLOR="#FF0000"].[/COLOR]Message([COLOR="#800080"]"Error"[/COLOR][COLOR="#FF0000"],[/COLOR] [COLOR="#800080"]"Error copying file [COLOR="#800080"]\"[/COLOR]"[/COLOR] [COLOR="#FF0000"]..[/COLOR] sSource [COLOR="#FF0000"]..[/COLOR] [COLOR="#800080"]"[COLOR="#800080"]\"[/COLOR] to [COLOR="#800080"]\"[/COLOR]"[/COLOR] [COLOR="#FF0000"]..[/COLOR] sDestination [COLOR="#FF0000"]..[/COLOR] [COLOR="#800080"]"[COLOR="#800080"]\"[/COLOR][COLOR="#800080"]\r[/COLOR][COLOR="#800080"]\n[/COLOR]"[/COLOR] [COLOR="#FF0000"]..[/COLOR]
              _tblErrorMessages[COLOR="#FF0000"][[/COLOR][COLOR="#0000FF"]error[/COLOR][COLOR="#FF0000"]],[/COLOR] MB_OK[COLOR="#FF0000"],[/COLOR] MB_ICONEXCLAMATION)[COLOR="#FF0000"];[/COLOR]
            [COLOR="#0000FF"]end[/COLOR]
          [COLOR="#0000FF"]else[/COLOR]
            Dialog[COLOR="#FF0000"].[/COLOR]Message([COLOR="#800080"]"Error"[/COLOR][COLOR="#FF0000"],[/COLOR] [COLOR="#800080"]"[COLOR="#800080"]\"[/COLOR]_snow"[/COLOR] [COLOR="#FF0000"]..[/COLOR] sNumber [COLOR="#FF0000"]..[/COLOR] [COLOR="#800080"]".ac_[COLOR="#800080"]\"[/COLOR] doesn't exist and can't be copied to [COLOR="#800080"]\"[/COLOR]SNOW[COLOR="#800080"]\\[/COLOR]"[/COLOR] [COLOR="#FF0000"]..[/COLOR] sFilename [COLOR="#FF0000"]..[/COLOR] [COLOR="#800080"]"[COLOR="#800080"]\"[/COLOR]"[/COLOR])[COLOR="#FF0000"];[/COLOR]
          [COLOR="#0000FF"]end[/COLOR]
        [COLOR="#0000FF"]end[/COLOR]
      [COLOR="#0000FF"]end[/COLOR]
    [COLOR="#0000FF"]else[/COLOR]
      Dialog[COLOR="#FF0000"].[/COLOR]Message([COLOR="#800080"]"Info"[/COLOR][COLOR="#FF0000"],[/COLOR] [COLOR="#800080"]"No *.ace file found in "[/COLOR] [COLOR="#FF0000"]..[/COLOR] sSourceFolderName)[COLOR="#FF0000"];[/COLOR]
    [COLOR="#0000FF"]end[/COLOR]
    Build the attached project and give it a try, running it in a folder where you have some of these *.ace and _snow??.ace_ files.

    Ulrich
    Attached Files

    Comment

    Working...
    X