Whatever message this page gives is out now! Go check it out!

What is supported in CFScript

Last update:
May 18, 2026

Tag equivalents in CFScript

With ColdFusion 11, you can use all tags inside cfscript.
The following table lists all the tags that supported script-style syntax in ColdFusion.
TagCFScript equivalent
cfabortabort
cfbreakbreak.
cfcasecase
cfcatchcatch
cfcomponentcomponent
cfcontinuecontinue
cfcookieDirect assignment of Cookie scope memory-only variables. You cannot use direct assignment to set persistent cookies that are stored on the user system.
cfdefaultcasedefault
cfdirectory Only for <Cfdirectory action=list/>The directory functions DirectoryCreate, DirectoryDeleteDirectoryList , and DirectoryRename.
cfdumpwritedump
cfelseelse
cfelseifelseif
cfexitexit
cffileThe file functions FileDelete, FileSeek, FileSkipBytes, and FileWriteLine.
cffinallyfinally
cffunctionfunction
cfimageThe Image functions.
cfifif
cfimportimport Import in cfscript is only equivalent of <cfimport path="">.
cfincludeinclude
cfinterfaceinterface
cflocationlocation
cflocklock
cflogwritelog
cfloop
  • Indexed cfloop: for loops
  • Conditional cfloop: while loops and do while loops
  • Structure cfloop: for in loop. (There is no equivalent for queries, lists, or objects.)
cfobjectcreateobject, new
cfoutputwriteoutput
cfparamparam
cfprocessingdirectivepageencoding
cfpropertyproperty
cfrethrowrethrow
cfreturn
return
cfsavecontentsavecontent
cfsetAssignment statement x =1; is equivalent of <cfset x =1> local.x=1; is equivalent of <cfset var x =1>
cfswitchswitch
cfthreadthread
cfthrowthrow
cftracetrace
cftransactiontransaction
cftrytry

Examples of script-style syntax

The following example loops through a query in CFScript:
... 
<cfscript> 
// Loop through the qGetEmails RecordSet 
for (x = 1; x <= qGetEmails.RecordCount; x=x+1) { 
This_id = qGetEmails.Emails_id[x]; 
This_Subject = qGetEmails.Subject[x]; 
This_RecFrom = qGetEmails.RecFrom[x]; 
This_SentTo = qGetEmails.SentTo[x]; 
This_dReceived = qGetEmails.dReceived[x]; 
This_Body = qGetEmails.Body[x]; 
... // More code goes here. 

</cfscript>
The following examples demonstrate the differences in syntax between tag-style and script-style programming.

cflocation example

Tag-style

<cflocation

url = "URL"

addToken = "yes|no"

statusCode = "300|301|302|303|304|305|307">

Script-style

<cfscript>

cflocation(url = "URL",

addToken = "yes|no",

statusCode = "300|301|302|303|304|305|307")

</cfscript>

cfajaxproxy example

Tag-style

<cfajaxproxy

cfc = "CFC name"

jsclassname = "JavaScript proxy class name">

OR

 <cfajaxproxy

bind = "bind expression"

onError = "JavaScript function name"

onSuccess = "JavaScript function name">

Script-style

<cfscript>

 cfajaxproxy(cfc = "CFC name",

jsclassname = "JavaScript proxy class name")

</cfscript> 

OR 

 <cfscript>

cfajaxproxy

(bind = "bind expression",

onError = "JavaScript function name",

onSuccess = "JavaScript function name")

</cfscript>

cfpdf example

The following example shows the differences between tag-style and script-style syntax when there are child tags present.

Tag-style

<cfpdf action="merge" destination=expandPath(’./MyPDFMerged.pdf’) overwrite=true>

<cfpdfparam source=expandPath(’./MyPDF1.pdf’)>

<cfpdfparam source=expandPath(’./MyPDF2.pdf’)>

 </cfpdf>

Script-style

cfpdf(action="merge", destination=expandPath(’./MyPDFMerged.pdf’), overwrite=true) {

  cfpdfparam(source=expandPath(’./MyPDF1.pdf’));

  cfpdfparam(source=expandPath(’./MyPDF2.pdf’));

  };

Reserved words

In addition to the names of ColdFusion functions and words reserved by ColdFusion expressions (such as NOT, AND, IS, and so on), the following words are reserved in CFScript. Do not use these words as variables or identifiers in your scripting code:
breakdoimportvar
case
else
in
while
catch
finally
interface
try
for
pageencoding
continue
function
return
default
if
switch

Share this page

Was this page helpful?
We're glad. Tell us how this page helped.
We're sorry. Can you tell us what didn't work for you?
Thank you for your feedback. Your response will help improve this page.

On this page