Jump to content

Recommended Posts

Posted

I have a For Next loop I'm having a bit of trouble getting to work. Here's a simplified version of my script to give an idea of what I'm doing. This version of the script iterates over a series of filenames with a regular naming format. It assembles a filename variable out of the current loop variable number, then checks to see if a PDF exists in the \pic\ subdirectory. If it does, it calls PDFTK (which exists in the directory where the script is being called) and performs an operation; if not, it copies a file from one directory to another.

When I run the script, it immediately closes without running through the loop, and never calls PDFTK or copies the file. I'm having trouble figuring out what I did wrong, though I'm sure it must be simple.

$format = "2010CO001"

For $a = 1 to 273 Step 1
    If StringLen ($a) = 1 then $filename = $format + ".000" & $a
    If StringLen ($a) = 2 then $filename = $format + ".00" & $a
    If StringLen ($a) = 3 then $filename = $format + ".0" & $a
    If FileExists(@ScriptDir & "\pic\" & $filename & ".pdf") Then
        RunWait("pdftk " & @ScriptDir & "\dj\" & $filename & ".pdf " & "stamp " & @ScriptDir & "\pic\" & $filename & ".pdf " & @ScriptDir & "\out\" & $filename & ".pdf")
    Else
        FileCopy(@ScriptDir & "\dj\" & $filename & ".pdf",@ScriptDir & "\out\" & $filename & ".pdf")
    EndIf
Next
Posted

it would be better if you had posted some of the filenames you want to run

$format = "2010CO001"

For $a = 1 to 273 Step 1
    If StringLen ($a) = 1 then $filename = $format + ".000" & $a
    If StringLen ($a) = 2 then $filename = $format + ".00" & $a
    If StringLen ($a) = 3 then $filename = $format + ".0" & $a
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $filename = ' & $filename & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    If FileExists(@ScriptDir & "\pic\" & $filename & ".pdf") Then
        RunWait("pdftk " & @ScriptDir & "\dj\" & $filename & ".pdf " & "stamp " & @ScriptDir & "\pic\" & $filename & ".pdf " & @ScriptDir & "\out\" & $filename & ".pdf")
    Else
        FileCopy(@ScriptDir & "\dj\" & $filename & ".pdf",@ScriptDir & "\out\" & $filename & ".pdf")
    EndIf
Next
the script shows the filenames you create, it seems they are wrong....or are they right?
Posted

You're right, the filenames seem to be wrong. I typoed + in place of &, which resulted in pretty wrong filenames. After I corrected that, and my PDFTK syntax, it seems to be working. Thanks a lot! I'll try to apply what I learned here to the longer, more complex version of the script.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...