TaskSculpta - A Windows task action automation tool with a difference.

What is TaskSculpta?

TaskSculpta is a free, portable Windows automation tool that allows you to create, edit, and run tasks without writing scripts or batch files. It provides a visual alternative to traditional automation methods.


tasksculpta

Above is a screenshot of TaskSculpta.

Download TaskSculpta here

Version 1.0.22 • Portable • Windows

↓ Download TaskSculpta


If download does not start, right click and select Save link as...


Actions List

TaskSculpta actions

TaskSculpta - Introduction

TaskSculpta is a general purpose automation tool I created some time ago to automate the release of my utilities. I also use it for various other development tasks. I've put a similar user interface from my other recent new tool TaskFlexa.


Think of it as kind of a visual form of batch files that you can see the flow of the task actions. You don't need to learn and code just familiarize yourself with the Task Actions list.


This tool is perfect for technical and semi technical Windows users who want to automate processes, integration or just make regular tasks simpler. You do not need programming knowledge to use TaskSculpta but if you are a software, database or web developer you can use it in conjunction with Python or VBScripts. You can also use it to launch you're own console application and monitor the success of fail status of that application.


You can associate a related file or a URL to each task if you wish. The file or URL can then be opened from the selected task.


Multiple task scripts can be opened on separate tabs. The TaskSculpta files have a .TSA file extension.


To use TaskSculpta just create a local folder and put TaskSculpta into it. TaskSculpta is portable like my other tools so it does not require an installation and can therefore be put onto a memory stick to be use between machines.


What TaskSculpta can be used for...

  • Creating software release scripts.
  • Running console applications with parameters and capturing the output.
  • Reading and editing text based files.
  • Copying and managing files.
  • Executing Python scripts, receiving return value and capturing the output.
  • Executing VBScripts, receiving return value and capturing output.
  • Making FTP/SFTP connections and file transfers etc.
  • Connection to databases using ADO and performing database operations.
  • Connecting directly to SQLite Databases and performing database operations
  • Executing CMD prompt commands and capturing the output.
  • User prompts and information capture.
  • Performing checks and getting system information.
  • Systems integration and database migration.
  • Performing WMI queries and returning system info and status.
  • Downloading files

TaskSculpta - Job Actions List

Alerts

  • Beep - Audio sound alert

Checking

  • DoesFileExist - Checks a specified file exists. Fails if it doesn't exist
  • DoesFolderExist - Checks a specified folder exists. Fails if it does not exist.
  • CheckFileInUse - Check if a specified file is being used by another process.
  • CheckInternet - Check for Internet connection / access.

Database

  • SQLiteConnect - Connect and open an SQLite database
  • SQliteTablesToList - Retrieve a list of tables from SQLite and put in a list variable
  • SQLiteUpdate - Perform and Update/Insert/Delete SQL statement on an SQLite Database
  • SQLiteSelectToList - Perform an SQL select statement on an SQLite database and put the results in a list variable
  • SQLiteCSVToTable - Import CSV file data to a new table in SQLite.
  • SQLiteTableToCSV - Export data from an SQLite table to a CSV File.
  • SQLiteDisconnect - Close open SQLIte database
  • SQLiteCreate - Create new empty SQLite database
  • SQLiteExport - Export an SQLite table to a specified file and format.
  • ADOConnect - Make ADO database connection
  • ADOTablesToList - ADO DB Table names to list variable. Requires ADOConnect.
  • ADOSelectToList - ADO SQL Select result to list variable. Requires ADOConnect.
  • ADOTableToCSV - ADO Table export to CSV File. Requires ADOConnect.
  • ADOTableExport - Export a table via an ADO Connection to a specified file and format.
  • ADOUpdateSQL - ADO Update/Insert/Alter/Delete SQL Statements. Requires ADOConnect.
  • AccessRepComp - Access database repair and compact
  • DBFExport - Export a DBF table to a specified file and format.
  • OracleConnect - Connect to an Oracle Database via the Oracle client (WIP)
  • OracleDisconnect - Disconnect Oracle Database (WIP)
  • OracleUpdate - Execute update script to Oracle Database (WIP)

Dialogs

  • MessageBox - Shows a message box with text and or variable
  • OpenFileDialog - Open file dialog, returns filename to variable
  • SelectFolderDialog - Select folder dialog, returns folder path to variable
  • TaskDialog - Multi option dialog
  • InputVariable - Input value to variable
  • YesOrNoBox - Yes or No dialog box

Files

  • FileCopy- Copies a specified file to a specified folder
  • DoesFileExist - Checks a specified file exists. Fails if it doesn't exist
  • OpenFile - Open a file with it's associated application
  • CreateZipFile - Create a specified Zip file
  • DeleteFile - Delete a specified file
  • CreateTextFile - Creates a new text file in a specified folder
  • FileAppend - Append text to text file.
  • InsBetweenTags - Insert text between two text tags in a text based file.
  • InsertUnder - Insert text underneath a specified target string tag in a text file.

FTP / SFTP

  • FTPConnect - Make basic FTP Server Connection
  • FTPChangeDir - Change remote FTP folder. Requires FTPConnect.
  • FTPUpload - Upload file to FTP server. Requires FTPConnect.
  • FTPDownload - Download file from FTP server. Requires FTPConnect.
  • FTPDisconnect - Disconnect FTP server connection. Requires FTPConnect.

  • SFTPConnect - Make SFTP server connection
  • SFTPDisconnect - Disconnect SFTP server connection. Requires SFTPConnect.
  • SFTPUpload - Upload file to SFTP server. Requires SFTPConnect.
  • SFTPDownload - Download file from SFTP server. Requires SFTPConnect.
  • SFTPChangeDir - Change Directory on remote SFTP server. Requires SFTPConnect.
  • SFTPMakeDir - Make Directory on remote SFTP server. Requires SFTPConnect.
  • SFTPRemoveDir - Remove Directory on remote SFTP server. Requires SFTPConnect.
  • SFTPDeleteFile - Delete a specified file on remote SFTP server.

Flow

  • Section - Set a section header that you can jump to
  • JumpEquals - Jump to specified section if variable equals given value
  • Terminate - Terminate script at current location. This can be used to end a section after a jump
  • Comment - Non action comment. Useful for putting in notes on the script.
  • JumpCase - Case list of variable values to jump to sections.

Folders

  • CreateFolder - Create a specified folder
  • DoesFolderExist - Checks a specified folder exists. Fails if it does not exist.
  • OpenFolder - Open specified folder in Windows Explorer
  • CopyFolder - Copies a specified folder to a specified path.

Imaging

  • CreateQRCode - Create a QRCode containing a message or link and save to a bitmap file.
  • ImageConvert - Convert a specified image to another image format.

Lists

  • CreateListVariable- Create an empty list that can be populated by actions.
  • ListLoad - Load a text file into a list variable.
  • ListSave - Save list variable content to a specified text file.
  • ListLinesReplace - Search and replace text tokens within lines in a list variable.
  • Directory - Get list of files from a specified folder to a list variable.
  • ListToXLSX - Saves the contents of a list variable to a basic Excel XLSX file.
  • PopulateList - Populate a specified list from a static list of strings.
  • ListDedupe - Duplicate lines in a list to a new list.

Network

  • SendUDPText - Send text to a UDP port and IP Address.
  • OpenURL - Open a URL in the default web browser.
  • Ping - basic Ping an IP Address.
  • DownloadFile - Download a file from the Internet.

Output

  • OutputList - Output list contents to the output panel
  • OutVariables - Output created variables
  • ClearOutput - Clear output window
  • OutputMessage - Send a string or variable to the Output tab

Programs and Scripts

  • ExecuteProgram - Execute a specified program with parameters
  • PythonScript - Execute a Python Script with parameters and get result
  • VBScript - Execute a Visual Basic Script with parameters and get result
  • CMDCommand - Run CMD Prompt commands such as mkdir, ipconfig, set etc

System

  • GetUsername - Get User name to a variable
  • GetCompName - Get Computer name to a variable
  • GetCPUCores - Gets the number of CPU Cores. This is needed as some software charge per core.
  • GetDateTime - Get Date / Time using specified format
  • CMDCommand - Run CMD Prompt commands such as mkdir, ipconfig, set etc
  • StartService = Start a specified Windows service.
  • StopService - Stop a specified Windows service.

WMI

  • WMISelect - Execute a WMI Select statement and return the results to a list variable

Variables

  • CreateVariable - Create a variable for use is most task action properties input and outputs
  • CreateVarBatch - Create multiple variables in one action. It allows you to go back and add new variables easily
  • INISetValue - Write a value to a section item in an INI file, Useful for persisting data outside of the scripts
  • SetUserEnvVar - Create and write a value to a User system environment variable
  • GetUserEnvVar - Read a value from a User system environment variable and assign it to a script variable
  • GetWinVer - Get Windows Version info to a variable
  • GetFileVer - Get file version number to a variable
  • Inbetween - Get substring in between two string tags
  • SetVariable - Set variable value
  • INIGetValue - Get value from an item in a section of a specified INI File

XML Files

  • XMLGetValue - Get value from a specified branch in a XML file
  • EditXMLFile - Edit a specified XML file branch

Understanding TaskSculpta Scripts

The scripts are basically a list of actions with properties. They run from top to bottom naturally. From line 1 to whatever is your last line number. So you have to ensure they are in the correct order. When you add a new task action it will be added to the bottom of the list. So you need to add the items that need to be done before other items first.


For example you need to add FTPConnect before you add FTPUpload or ADOConnect before ADOUpdateSQL etc. You also need to add CreateVariable or CreateListVariable for you add any action that will use them in their properties.


If you do forget something that needs to run before your current actions you can always add it and then move it up. To move an item up - right click on it in the script list and select 'Move Up' this will move it one item up. Repeat until it's in the right place.


If the numbers become out of sync or duplicated select 'Renumber' from the main tool bar or from the same right click menu.


Understanding Variables and Lists

It's important to understand variables because they are the way information, settings and values are passed between different actions. Any software engineer, web developer or scientist should have not difficulty with the concept.

TaskSculpta's variable actions


There are different types of variables used in TaskSculpta.


Standard Variables

Variables created using CreateVariable or CreateVarBatch are basic variant variables. They can be text or numbers. To get information out of the variable it must be enclosed with the % symbols. IE %myvar% For example in the MessageBox property you can specify text with a variable like this 'This is the inputted value: %myvar%'


Tip.

If you are using lots of variables it's a good idea to use CreateVarBatch. This action allows you to create multiple variables in one line. So it should be the first item in your script. For more informations on variables see Understanding Variables and Lists.

List Variables

ListVariables are the same but it's a list of them as one variable. They are used specifically for actions that use lists.


Built in variable constants

TaskSculpta has it's own build in variables that a preset at run time, such as...

  • $Date$
  • $Time$
  • $DateTime$
  • $MachineName$
  • $ScriptPath$
  • $ScriptFolder$
  • $DayOfWeek$
  • $DayOfWeekNo$
  • $DayOfWeek$
  • $Month$
  • $Year$
  • $Username$
  • $TempPath$
  • $CPUCores$

These can be used in actions such as MessageBox IE 'The date is: $date$' or outputted to the Output tab for debugging.

More built in variables will be added in future releases

Note: Variables are not case sensitive so $DATE$ is the same as $date$


Important: Variables are created and destroyed during the running of the script. Values do not remain in the script for the next time they run. If you want to store a variable value you can save it to a file such as INI, XML or Text.

Windows User Variables

If you do want to store a value for next time or pass / share a variable value between mulitiple scripts you can use Window's User variables.


You can setup these variables in Windows via the following screen.


Windows System andUser Environment Variables dialog

This screen can now also be reached via TaskSculpta's Tools menu.


The Window's User variables can get set and retrieved vai the following actions... GetUserEnvVar and SetUserEnvVar


Because these variable values are store in Windows they can be passed to different scripts or used to persist values between script runs.

TaskSculpta does not currently support the Windows System Variables but this might change in future releases

If you have a particular variable requirement, let me know.


Running Python Script in TaskSculpta

You can run a Python script in TaskSculpta as part of you're own projects or as part of a TaskSculpta script. If for example you want to make a specific alteration to file or data, you can do it in Python and even pass a parameter to the Python script and return a value back to the TaskSculpta script variable.


 Python script action dialog
In the dialog above you must first specify the location of your installed Python executable file.
Next specify the location of your script, the variable you will pass as a parameter and the variable that will receive the returned value.

Here is an example of a simple Python script that receives a parameter and returns a value...


		# transform.py
		import sys

		def transform(s: str) -> str:
			# Replace every occurrence of PRE- with #
			return s.replace("PRE-", "#")

		if __name__ == "__main__":
			if len(sys.argv) < 2:
				print("", end="")
			else:
				input_str = sys.argv[1]
				result = transform(input_str)
				print(result, end="")
		


Here is an example of a simple VBScript that receives a parameter and returns a value...


		
		' transform.vbs
		Option Explicit

		Dim inputStr, outputStr

		If WScript.Arguments.Count < 1 Then
			WScript.Echo ""
			WScript.Quit 0
		End If

		inputStr = WScript.Arguments(0)

		' Replace "PRE-" with "#"
		outputStr = Replace(inputStr, "PRE-", "#")

		' Output result 
		WScript.Echo outputStr
		
		


Running Programs

The task action ExecuteProgram is for executing programs and batch files. You can choice the program by clicking the '...' button. The program can be Windows programs or console applications. If they are console applications the output is shown on TaskSculpta's output tab. You specify the properties of ExecuteProgram as shown in the properties dialog below. The properties can be from variables as seen here.


ExecuteProgram Properties

TaskSculpta will report Success or Failed in the status column depending on the exit code of the program. For programmers (software developers) this is useful for creating a program to perform a very specific custom check or task. For example in the past I have create console applications to check valid SQL files as part of a release. The programs exited 1 or 0 depending on whether the checks had been satisfied.

If you execute a Windows program when the script runs you will have to close the program before TaskSculpta will move on to the next task action.


Using SQLite Databases

TaskSculpta allows the user to access SQLite databases directly in the scripts. SQLite is a powerful database and new features for SQLite will continue to be added.

Using SQlite databases is very simple. First you must add the SQLiteConnect to the script and set is properties to your existing SQLite database .db file.
Next you can add SQliteTablesToList, SQLiteUpdate, SQLiteSelectToList, SQLiteCSVToTable, SQLiteTableToCSV in the combination you need. When finished add SQLiteDisconnect to close the database and free temp files created by the database engine.

SQLite Script

There is now a action to create a new SQLite database SQLiteCreate. To visually view and edit SQLite database see my SQLite Inspector Plus tool.


Windows Management Instrumentation (WMI)

Windows Management Instrumentation (WMI) is Microsoft's powerful feature for management data and operations on Windows OS. It allows you to query, configure, and automate system settings, hardware, and applications locally and remotely.
WMISelect executes these WMI Select statements and returns the results to your specified List Variable. This list can then be processed, saved etc

Here's just a few examples of WMI Select statements...


		SELECT Caption, Version, BuildNumber 
		   FROM Win32_OperatingSystem
		


		SELECT Name, ProcessId, ExecutablePath 
		   FROM Win32_Process
		


		SELECT Name, Manufacturer, Status 
		   FROM Win32_Printer
		


		SELECT DeviceID, VolumeName, FileSystem, FreeSpace, Size 
		   FROM Win32_LogicalDisk
		

Keep an eye on this section as more WMI features will be added.


FTP and SFTP (File Transfer Protocol)

TaskSculpta now supports both FTP and SFTP. SFTP is the Secure version of FTP used commonly by web developers to transfer files and updates to their websites securely. If you do know no which to use I would go with the SFTP and basic FTP is only really used for internal applications and VMs.


Which ever you use you must stick with those actions (SFTP or FTP). You can't mix and match. You must first use either FTPConnect or SFTPConnect to establish the connection and when your finished use FTPDisconnect or SFTPDisconnect. Which ever you use you must stick with those actions (SFTP or FTP). You can't mix and match. The actions are categorized separately in the drop down box to make this easier to see.


Currently the SFTP actions are SFTPConnect, SFTPDisconnect, SFTPUpload, SFTPDownload, SFTPChangeDir, SFTPMakeDir, SFTPRemoveDir


Feedback on TaskSculpta

This is a new tool release 6th Dec 2025. If you do get an unexpected error message then contact me and I'll try and fix it as soon as possible. I also have lots of new features planned for this tool so if you would like to see a particular feature let me know so that I can prioritize it, if it's already on my list.


As TaskSculpta is a new tool I would appreciate feedback. Let me know if you get any unexpected errors or a feature doesn't work correctly. I've got lots of new task actions in progress for TaskSculpta so it would be good to here what kind of things would be useful. Just send an email. Contact