Category Archives: Tools

iSkeddy – Enterprise workload automation and scheduling system

Download binary

1. Overview

iSkeddy is an enterprise workload automation and scheduling software. It combines many features. With simple to use GUI client, through which scheduling can be set to your jobs run on any schedule, recurring or event. Work on reliably, even during unexpected failure. With the expanding IT organizations, managing number of applications, databases and technologies that are critical to the successful operations of the organization. With iSkeddy, you can develop and rollout end-to-end workflows faster and more reliably than using custom scripts or “closed” scheduling systems.

PS: iSkeddy developed with Cinchoo, an application framework for .NET

2. Features

iSkeddy lets you run your jobs on simple or complex recurring schedules. Below are some of the key features offered by iSkeddy

  • Scheduler – iSkeddy scheduler lets you to create tasks that could reliably run them on recurring schedule or at some point in future.
  • Automation – It provides a graphical user interface and a single point of control for definition and monitoring of background tasks executions in a distributed network of computers.
  • Easy User Interface – iSkeddy dashboard gives nice user interface to manage and monitor tasks right from your desk.
  • Extended Logging – Collect verbose logs from the task run and view them from dashboard.
  • Auditing for compliance – iSkeddy offers full support for audit and policies. It records and stores the each action initiated by user.
  • Simple Workflow/Job setup – Group multiple tasks into logical sequences, link them your way.
  • Load Balancing – Tasks workloads are evenly distributed among clusters.
  • Resiliency – Automatically fail over to secondary node when primary goes down, eliminate the down time seconds to none.
  • Tasks Library – Number of preloaded tasks to get your work started.
  • Extensions – Easily extendable to create and use your own custom tasks for your needs.

3. Components

iSkeddy is a client-server system. Very simple to setup and run, zero configuration required. Just download the setup.exe and install it on your system. It will put two components in C:\Program Files (x86)\iSkeddy folder

  • iSkeddy client (iSkeddy.exe)
  • iSkeddy server (iSkeddyServer.exe)

Simply launch both iSkeddyServer.exe and iSkeddy.exe, you are ready to setup and schedule any type of tasks within few seconds.

3.1 iSkeddy Client

It is simple easy to use interface component, lets you setup, manage and monitor tasks/jobs. At launch, the iSkeddy client automatically try to discover and connect to the available iSkeddy server if the UDP protocol is turned on. If UDP is not turned on, you can choose to connect to iSkeddy server via TCP/IP protocol using ‘Server Settings’ window. You can get to this window by using ‘Connect’ button on the main window.

Image 3.1 iSkeddy Server Settings Window

ConnectWnd1

The above settings are

  • ControllerIPAddress – In TCP/IP mode, you will have to specify the iSkeddy controller IP address.
  • IsPeer – N/A
  • TurnOnUDP – Turn on / off UDP.
  • UDPAddress – In case of UDP turned on, specify the UDP address.
  • UDPPort – UDP port.

The main window of iSkeddy client looks as below

Image 3.2 iSkeddy Main Window

The main window consists of two panes. On the left side pane, it lists all the tasks grouped together in tree view format. On the right side pane, it shows the selected jobs running statuses in grid view format.

Task is smallest operation that serves as unit of work. In iSkeddy, you can setup a task with specific custom name. A task can set to one or more schedules, by which you can set them to run different schedule/calendar based on your needs. Each task must be tied to workflow definition. Workflow is the series of activities that are necessary to complete a task. iSkeddy comes with standard workflow definition ready to use with your tasks. You can extend iSkeddy to define your own workflow definition and use them with your tasks as well. For each task run, a unique batch id will be generated and associated with it.

Let me describe each of the column displayed in the grid…

  • TaskName – A unique name assigned to a task.
  • ScheduleName – A task schedule name. Task can have one or more schedules. Each schedule will be associated with a unique name.
  • JobName – A job name is the combined name of TaskName and ScheduleName. Ex. ‘1_F1_FILE_WATCH’ task with ‘S1’ schedule, the job name will be derived as ‘1_F1_FILE_WATCH_S1’.
  • BatchId – A unique identifier generated and associated with each task run.
  • Status – A running status of task’s run. Possible states are
    • SUCCESS – After successful run, SUCCESS will be set.
    • FAILED – After failed run, FAILED status will be set.
    • ACTIVE – A job must be active in order to run or schedule.
    • SCHEDULED – A job is put on queue, waiting to be run by scheduler.
    • INACTIVE – Inactive tasks will be excluded from scheduler.
    • RUNNING – A current running tasks will be set to RUNNING state
    • STOPPED – Graceful way to stop the task by user, will be set as STOPPED status.
    • ABORTED – Abnormal terminated tasks are set as ABORTED status.
    • TIMEDOUT – A task is not completed within the specified period of time, it will terminated by iSkeddy and set to TIMEDOUT status.
  • Parameters – Task run time parameters, in key-value pairs.
  • Message – Running status message of the task.
  • StartTime – Start time of the task run.
  • EndTime – End time of the task run.
  • Duration – Elapsed time of the task run.
  • NextRun – Next scheduled run date time of the task, If the task dependent on other tasks with conditions, it will display the condition.
  • Exit – Exit code from the task run.
  • Retry – Retry attempt count.
  • Machine – Machine name where task will run.
  • User – It is the user who requested task action. SYSTEM, if the task is managed by iSkeddy.

On top of the Main Window, you will notice few buttons

  • Refresh – It is used to reconnect iSkeddy client to server, in case of any unexpected disconnect happens.
  • View Clusters – In the cluster setup, where more that one iSkeddy server nodes are hosted, this will open a window to view all the available active nodes.

Image 3.3 iSkeddy Cluster Nodes Window

Cluster

 

  • Holiday Calendar – This will launch the holiday calendar window, where you can manage the holiday calendars. Holiday calendars define the set of statutory (civic) holidays that tasks are entitled to take off. You can associate a calendar to a task, the scheduler will remember not to run the task on those holidays. The holiday calendar window looks as below. Will discuss in detail about it later.

Image 3.4 iSkeddy Holiday Calendar Window

HolidayCalendar

 

3.1.1 Manage Tasks

Tree-ContextMenuIn this section, I’ll elaborate about creating, managing tasks/jobs using iSkeddy client program. There are two types of nodes can be created

  • Group – It is logical grouping of tasks managed under a group.
  • Task –  It is an actual task unit.

When you right-click on any node on the tree, you will have context menu shown in Image 3.1.1.1

  • Add Group – Add a new Group.
  • Add Task – Add a new Task.
  • Remove – Remove Group / Task.
  • Edit – Edit a Group / Task.
  • Copy – Copy a Task.
  • Paste – Paste a Task.
  • Move – Move a Task from one group to another.
  • Export – Export a Task/Group.
  • Import – Import a Task/Group.
3.1.1.1 Add / Edit Task Group

After you click ‘Add Group’ or ‘Edit’ from the context menu, you will be prompted with the below window to manage the groups.

Image 3.1.1.1.1 Task Group Editor

AddGroup

In the above window, you will have given Task Group Name, which is unique and mandatory value. Besides name, you can provide optional comments for the task group.

3.1.1.2 Add / Edit Task

After you choose ‘Add Task’ or ‘Edit’ from the context menu, you will be prompted with the below window to manage a task

Image 3.1.1.2.1 Task Editor

TaskEditThere are many parameters to configure a task using this window.

  • Task Info – Basic task related parameters are set here.
  • Schedules – List of schedules associated with the task.
  • Schedule Parameters – Task schedule parameters are set here
  • TimeZone – Task’s Time Zone information

Task Info

In this section, the basic task parameters are specified. Some of them are

  • Task Name – Task name, it is a unique name to identify the task.
  • Machine – Machine name or Cluster Name where the task to be run.
  • WF Name – Workflow name of the task. Workflow is task execution plan. There are number of ready to use workflows comes with iSkeddy. If you click ‘Choose’ button, it will open the workflow selection windows as below

Image 3.1.1.2.2 Workflow Selection Window

WorkflowSelector

 

  • Parameters – Run parameters of the task. List of parameters needed to run the task. It varies to each type of task. Values can be constant values or expression values.

Image 3.1.1.2.3 Task Parameters Editor

RUN_PROGRAM

 

Tip:  If a parameter value contains whitespace, it must be surrounded by single quotes (‘) to consider as part of the value.

Tip: The parameter values can be constant values or it can contain expressions (ex: TODAY, TIME etc with formats). Will discuss more about it later.

Schedules

In this section, task schedules will be managed. A task may have one or more schedules with the schedule conditions. The list box shows the list of schedules. In order to create a new schedule, type a name in the textbox and click ‘ADD NEW’. To delete a schedule, select the schedule from the listbox and click ‘DELETE’. In case you wanted to retain the schedule definition but wanted to exclude it from the scheduler, you can do so by unchecking ‘Enabled’ checkbox.

Schedule Parameters

In this section, each task schedule parameters can be specified. There are a huge list of parameters can be configured based on your needs. A task must have atleast one schedule in order to be scheduled. It can have one or more schedules with the different schedule conditions. Here are the details of the each parameter

  • StartDate – Scheduled task run start date. Must specify
  • EndDate – Scheduled task run end date. If left empty, the task will scheduled forever.
  • StartTime – Start time on a schedule day window, the task is scheduled to start.
  • EndTime – End time on a schedule day window, the task is scheduled to end.
  • ScheduleType – Schedule Type (Possible values are DAILY, WEEKLY, MONTHLY, ONCE)
  • T1 – This denotes number of days before or after the task should run when it falls on one of the holiday calendar dates. Only applicable to Weekly / Monthly schedules.
  • Daily – Specify how many days once the task should run.
  • Weekly – Specify the week days or number of weeks once the task should run.
  • Monthly – Specify the days of the month the task should run.
  • Repeat – Specify the task to run repeatedly every specified minutes / hours on a schedule day.
  • Holiday Calendar – Optional Holiday calendar attached to the task.
    • Checked – The task will NOT run on the holiday calendar days specified in the calendar.
    • Unchecked – The task will run only on those days specified in the calendar.
  • Daylight Savings Options
    • Preserve Hours of the Day across DST – This property will fire of the task to always at the same time of day regardless of Daylight Savings Time.
    • Skip Day if the hour not exists – If the hour of the day does not exists on a given day, the day will be skipped and task will be advanced to next scheduled day.
  • Other / Dependencies – Define dependency rules to fire the task. The button glows green when there is dependency rules are defined for the task. There are number of operators and functions available to use when you define the rules. JobName is in the format of TaskName/ScheduleName. FireAfter option lets to instruct the system to start the job after specified number of minutes.

Image 3.1.1.2.3 Task Dependencies Editor

Depends

 

  • Comments – Short description of the schedule for your reference.

3.1.2 Tasks Commands

In this section, I’m going elaborate about sending task commands from iSkeddy dashboard. From iSkeddy client, you can monitor, start, stop, view status, log info of any job from your desktop.

Image 3.1.2.1 iSkeddy client main window

iSkeddy-MainWindow4

 

 

Here are the available job commands

  • Start – Start a task manually
  • Resume – In case, job failed abnormally, you can resume it by using this command. This is useful when the job has resumable capability.
  • Stop – Stop the job gracefully.
  • Abort – Abort the job.
  • Activate – Activate a job. In order for a job to be scheduled or start, it must be activated first.
  • Inactivate – Inacivate a job. This will put the job on hold from scheduling as well as from starting.
  • Activate All – Activate group of related jobs. Related jobs are jobs dependent of each other.
  • Inactivate All – Inactivate group of related jobs.
  • Open Log File – Open the log file of job.

Here are the details of each column of the grid on the main window

  • Job Name – The job name (Task Name / Schedule Name).
  • Workflow Name – The workflow name.
  • Batch Id – Unique batch id for each run.
  • Status – Job status of each run.
  • Parameters – Running parameters of the job.
  • Message – Last output message of the job run.
  • Start Time – Start time of the job.
  • End Time – End time of the job.
  • Duration – Total duration of the job run.
  • Next Run – Next scheduled run date time if independent task. For dependent task, it will display the dependency expression.
  • Exit – Exit code of the job run.
  • Retry – Total number of retry happened for job.
  • Machine – Machine where the job ran.
  • User – User initiated the task action command. SYSTEM if the system schedule and run it.
  • Modified Date – Last modified date time.

3.2 iSkeddy Server

It is a server component of iSkeddy system. It built with scheduler (controller), automation functionalities. You can setup and configure iSkeddy server in multiple fashions like single instance node, multiple cluster nodes etc. In an environment, you must configure one scheduler and optional multiple automation cluster nodes.

In a simple model, just launch iSkeddy server. This will run both Scheduler (controller) and Automation functionalities in one instance.

The server can be setup to use either TCP/IP or UDP protocols. Based on your needs and protocol availabilities you can setup iSkeddy server with either TCP/IP or UDP protocal. UDP is preferred, it gives the flexibility of auto fail over to secondary node when primary goes down.

iSkeddy server uses Sqlite as internal data store. It can be replaced with using other databases (SqlServer, Oracle etc) by writing adapters.

Only one instance of iSkeddy server per machine allowed. iSkeddy server can be run as Console application or setup as Windows service.

Console Mode

Launching iSkeddyServer.exe, it will run as console mode. At launch, it pops up the below setup window.

Image 3.2.1 Server Settings Window

ConnectWnd1

In here, you can configure the protocols and endpoints of iSkeddy server

  • TurnOnUDP – If checked, UDP protocol is used. Otherwise TCP/IP is used for connection.
  • ControllerIPAddress – If it is automation node, specify the IP address of the controller (scheduler). Only applicable if TCP/IP is chosen protocol. If UDP is choosen, each automation node automatically discovers the Controller (scheduler) node.
  • IsPeer – In cluster environment, any automation nodes should be setup with this option checked. It will launch the node as automation node.
  • UDPAddress – UDP Address. Applicable only if UDP protocol is selected.
  • UDPPort – UDP port.

Here are the list of command line iSkeddy server options available to use

Listing 3.2.1 iSkeddy server command line parameters

C:iSkeddy>iSkeddyServer.exe /??
iSkeddyServer [Version 2.0.0.1]
Copyright c Cinchoo Inc 2016

Enterprise workload automation, scheduling server

ISKEDDYSERVER [/d] [/c:] [/p] [/peer] [/u] [/setup] [/s]

        /d      Debug mode
        /c      Cluster Name
        /p      Private Node
        /peer   Run as peer server
        /u      Turn on users and policies
        /setup  Setup / Refresh database.
        /s      Silent, do not prompt connection dialog-box at startup.

From above,

  • /d – Debug mode is used to instruct the server to switch to debug mode. It is useful to run and step through the task source code.
  • /c – Cluster Name
  • /p – Private Node, instruct the controller (scheduler) do not participate in workload automation, It means the node is dedicated to scheduling only, No tasks will be scheduled to run on this node.
  • /peer – Run the instance as automation node. It means the node is participated in workload automation.
  • /u – Reserved.
  • /setup – Setup mode, run once after installing iSkeddy on a machine.
  • /s – Silent, do not show the connection dialog when running in console mode.

Besides the above set of command line arguments, iSkeddy server exposes another set of command line arguments for debug a specific workflow

Listing 3.2.2 iSkeddy server run workflow command line parameters

C:\iSkeddy>iSkeddyServer.exe /?
iSkeddyServer [Version 2.0.0.1]
Copyright c Cinchoo Inc 2016

Enterprise workload automation, scheduling server

The syntax of this command is:

ISKEDDYSERVER [RUN_WF]

Where RUN_WF switch instruct the iSkeddy server to run a specific task in debug mode.

Sample command is

iSkeddyServer.exe "RUN_WF" "/t:4_FI_TEST_EXIT_CODE" "/s:S1" "/b:-922087807" "/w:C:\Personal\Cinchoo Source\2013-11-05\ChoWorkflowServer\ChoWorkflowServer\bin\Debug\WorkflowDefs\SHELL\RUN_PROGRAM.etl" "/u:RAJ" "/p:PROGRAM_NAME=C:\Users\raj\test.bat;DOMAIN=;USER_NAME=;PASSWORD=;CMD_ARGS=;SILENT=True;TIMEOUT=-1;WAIT_FOR_EXIT=True;WORKING_DIRECTORY=C:\Users\raj;USE_SHELL_EXECUTE=False" "/to:30000" "/sr:0" "/mr:0" "/d"

iSkeddy server outputs these details in the log file for you to grab them.

Windows Service Mode

You can set iSkeddy server as windows service, lets you run the server in the background, start automatically at the system startup etc by installing as Windows Service. Here is how you can install and start the iSkeddyServer as service

Listing 3.2.3 Install iSkeddy server as service

C:\iSkeddy>iSkeddyServer.exe /@I
iSkeddyServer [Version 2.0.0.1]
Copyright c Cinchoo Inc 2016


Enterprise workload automation, scheduling server

[SC] CreateService SUCCESS

[SC] ChangeServiceConfig SUCCESS

To start the service, either you can issue the below command in the command line or you can go to services console, start the service from there.

Listing 3.2.4 Start iSkeddy server service

C:\iSkeddy>iSkeddyServer.exe /@S
iSkeddyServer [Version 2.0.0.1]
Copyright c Cinchoo Inc 2016


Enterprise workload automation, scheduling server

For more service related commands, please run the below command

Listing 3.2.5 iSkeddy server service control parameters

C:iSkeddy>iSkeddyServer.exe /@?
iSkeddyServer [Version 2.0.0.1]
Copyright c Cinchoo Inc 2016


Enterprise workload automation, scheduling server

ISKEDDYSERVER [/@SN:] [/@DN:] [/@IN:] [/@SD:] [/@I] [/@U] [/@S] [/@T] [/@P] [/@C] [/@E:] [/@SP:]

        /@SN    Service Name.
        /@DN    Display Name.
        /@IN    Instance Name.
        /@SD    Service Description.
        /@I     Install Service.
        /@U     Uninstall Service.
        /@S     Start Service.
        /@T     Stop Service.
        /@P     Pause Service.
        /@C     Continue Service.
        /@E     Execute Command.
        /@SP    Command Line Parameters.

Tip:

If you want to run iSkeddyServer in different account/credentials, you can do so by opening ChoServiceInstallerSettings.xml configuration file under Config folder and specify the account details.

Image 3.2.2 iSkeddy server log folder screenshot

iSkeddyServerLog

 

iSkeddyServer logs are created under C:\Program Files (x86)\iSkeddy\iSkeddyServer\Logs. Every group of tasks run associated with new batch id, if there are dependent on each other. Or if it is independent task, a unique batch id assigned to it for each run.

For each such run, a separate log folder created in the name of batch id. All jobs log files are created under there. For example, a batch id 695455002, below image shows 2 related jobs logs are created under there.

Image 3.2.3 iSkeddy server log sub-folder screenshot

iSkeddyServerLog1

It simplifies and well organizes the log files, so that you can easily track them and investigate any issues associated with any jobs.

4. Workflows

Each task is created with a specified workflows. iSkeddy comes with number of workflows out of the box. Workflow is the definition, execution and automation of processes. It can be running a program, sending a email, transfer a file to ftp etc.

In here I’m going to talk about some of the most commonly used workflows and how to use them when defining task.

4.1 RUN_PROGRAM

There are some common tasks which needs to be executed at scheduled intervals. If you want Windows to work properly and always strive for a faster system performance, you will have to run backups, use disk cleanup,disk defragmentation or some custom maintenance scripts.

Running these tasks can be really painful at times, because you have to do it manually over and over again. It’s far better if you can automate them using iSkeddy.

Using RUN_PROGRAM workflow you set to run any program on a specified schedule. Here are the available parameters

Image 4.1.1 RUN_PROGRAM parameters

RUN_PROGRAM

You can get to the above window by going to ‘Task Editor’ window -> ‘Edit’ next to Parameters option.

The available parameters are

  • Domain – Identifies the domain to use when starting the process.
  • Password – The user password to use when starting the process. Password will be encrypted.
  • UserName – The user name to be used when starting the process.
  • ProgramName – Absolute path of the program.
  • CommandArgs – Optional command arguments.
  • Silent – True, to ignore the error reported on the stderr. Otherwise false. (Default: True).
  • Timeout – Wait time for this task to complete (Default: -1).
  • UseShellExecute – Indicating whether to use the operating system shell to start the process.
  • WaitForExit – Wait for application to exit (Default: True).
  • WorkingDirectory – When the UseShellExecute property is false, gets or sets the working directory for the process to be started. When UseShellExecute is true, gets or sets the directory that contains the process to be started.

4.2 FILE_WATCH

This task monitors the specified file for changes.

Image 4.2.1 FILE_WATCH parameters

WFParamsEditor

Here are the list of parameters supported by this workflow

  • File Path – Path of the file to watch.
  • Delay – Start the file watch after specified time interval (Default: 0)
  • Timeout – Indicate the time waits for the file watch complete (Default: -1).
  • Watch If File Exists – Watch even if file exists (Default: false).

Other built-in workflows will be detailed out shortly. In the mean time, please go to http://www.iskeddy.com to download and try it for free.

 

Cinchoo – Bulk File Processing Utility

Bulk file processing tool is an easy to use file processor that allows to carry out customized repeated operations on multiple files easily. With this tool, you can instruct the tool to process files in entire directories and subdirectories at once with a powerful preview and with multiple tools. It was designed to be easy to use yet powerful enough to handle some of the most complex repeatable tasks.

The very basic functionality it provides is that it allows to rename file names in batch. Moreover, you can craft file operations by extending this tool to carry out complex file operations like folder cleanup, file content search, rename photos with EXIF metadata, rename MP3 file using ID3 tags, etc.

This tool is developed using Cinchoo – An application framework for .NET. It is the working example of using some of the key features of Cinchoo framework.

2. Features

This tool provides the following features:

  1. Simplified GUI interface, compose and run file operations
  2. Can run as console mode (passing /#AM:Console as command line argument)
  3. Can run as tray application (on minimizing the window)
  4. Compose and Save multiple profiles
  5. Preview the file operations

Out of the box, with this tool, you can perform basic file renaming operations like:

  1. Add date/time stamps
  2. Rename files, folders and both
  3. Change the case of file names
  4. Regular Expression support
  5. Append Dates in many formats
  6. Auto-number files
  7. Preview the new names
  8. Process sub directories (Recursion)
  9. All settings retained between sessions
  10. 32-bit or 64-bit support
  11. Command line support
  12. Automatic copy/move renaming files
  13. Perform file name transformation using .NET string methods
  14. Extend it via plug-in architecture
  15. Save the settings as profiles
  16. Undo support
  17. ‘Bulk file processing…’ windows explorer extension

3. How To Run

This tool can be started and run as:

  • Console Application
  • Windows Application
  • Tray Application
  • Shell File Type (.blk) Association
  • Explorer Shortcut Menu

3.1 Window Mode

By default, if you run the executable (ChoBulkFileProcessor.exe), this will start as Windows application. In here, you can compose file operations, save them to profile (.blk file) file and run them. The main window looks like below.

Image 3.1.1 Main window

3.1.1 Main Toolbar

Main application toolbar contains a set of application command buttons that gives users quick access to do compose, open, save profiles and control the execution of file operations.

Image 3.1.1.1 Main Toolbar

  • – Create new profile settings file.
  • – Open a existing profile settings file.
  • – Save the profile settings to file.
  • – Save the profile settings to new file.
  • – Add folder to ‘Folders’ list for bulk processing.
  • – Remove folder from ‘Folders’ list.
  • – Start the bulk file processing.
  • – Stop the bulk file processing.
  • – Erase the status messages.
  • – Undo the bulk file processing operations.
  • Highlighted in Red area shows the name of the profile settings file.

3.1.2 Folders Selection

This section of controls allows to choose set of folders needed for bulk file operations.

Image 3.1.2.1 Choose Folders

  • Input folder – Choose the input folder from button from the toolbar. This is the folder chosen for bulk file processing.
  • Move/Copy to Folder – A destination folder where all the files will be moved or copied after bulk file processing performed. Optional. If blank, the files are processed and kept in the source location.
  • Plug-ins folder – Optional folder where the custom plug-in assemblies can be loaded from. Later, I will discuss more in detail about plug-ins.

3.1.3 Folders

Image 3.1.3.1 Folders

This listbox holds the list of folders chosen for bulk file processing. You must select at least one folder for file operations. These chosen folders can be saved with:

3.1.4 Status

Image 3.1.4 Status

This status window shows the status messages of the bulk file process.

3.1.5 Settings Help

These are settings used to control the bulk file operations of this tool.

Copy/Move
  • Move – Choosing this option will move the files to destination folder after bulk file processing.
  • Copy – Choosing this option will copy the files to destination folder after bulk file processing.
Options
  • Preview Mode – Turning this option will preview the bulk file operations.
  • Recursive – Include sub directories for the bulk file operations.
  • Overwrite – Option will overwrite the file if exists in the destination folder.
  • Resolve Collision – When two files end up with same file names, this option will append incrementing number to the file name. Otherwise, the bulk operation will fail.
Target
  • Files – Turning this option will perform the bulk operations on files only.
  • Folders – Turning this option will perform the bulk operations on folders only.
Find/Replace Cmds

These options are primarily used to find and replace file names with specified expressions.

  • Find Text – Find file text pattern
  • Replace Text – Replace file name text pattern
  • Trans Text – Expressions used to transform the file names. Expressions are separated by ‘;’. Will discuss about this later in the article
  • – Opens Expression evaluator editor, an editor helps you to compose and test the expressions
Expression Types
  • Use WildCard – Option specifies that the expressions given in ‘Find Text’ and ‘Replace Text’ fields are wildcard patterns.
  • Use Regex – Option specifies that the expressions given in ‘Find Text’ and ‘Replace Text’ fields are regular expression patterns.
  • – Opens Regular Expression language – Quick Reference guide in browser.
Advanced

– This button takes you to PlugIn Editor window to compose customized file operations in various languages. Currently the tool supports to write these operations in 4 different languages, C#, VB.NET, JavaScript, VBScript, MS-DOS Batch Script.

– If an error occurred when opening PlugIn Editor window, and wanted to reset the plug-in definitions due to corrupt definition stored in the profile settings file, you can do so by right-clicking on the ‘Advanced’ button to bring up popup menu and click on ‘Reset’ button.

3.2 Tray Application Mode

Sometimes, you may want to keep this tool running all the time and quickly go back to get access to this tool to carry out bulk file operations. In such cases, you can let them run in tray mode. By pressing ‘minimize’ button, the tool will be made to run in tray mode.

After minimizing the main window, the tool will run as system tray. The below image shows the tool in system tray.

Image 3.2.1 System Tray

In this mode, the below features are available to you. These will be available when you right click on this tool application icon in tray taskbar.

  • Open – To restore the window.
  • Always on Top – To keep the window as topmost of all other Windows applications.
  • Run at System Startup – This option lets the application start up automatically when system starts.

The below image shows the system tray context menu of this tool.

Image 3.2.2 System Tray Context Menu

3.3 Console Mode

This tool can be started as Console Application by passing /#AM:Console command line parameter to the executable.

Listing 3.3.1 Running as console mode

>ChoBulkFileProcessor.exe /#AM:Console test.blk /d:"C:\Config;C:\Config1"

Where:

  • /#AM:Console – Instruct the tool to start in console mode
  • test.blk – Profile Settings file path, either absolute or relative file path.
  • /d – List of input folders for bulk file processing separated by ‘;’.

3.3.1 Help

To get help of the application, pass /? in command line.

Listing 3.3.1.1 Getting help
>ChoBulkFileProcessor.exe /#AM:Console /?

ChoBulkFileProcessor [Version 1.0.0.0]
Copyright c  2012

CHOBULKFILEPROCESSOR SettingsFilePath [/d:<string>]

        SettingsFilePath        Settings file path.
        /d                      Source directories (separated by ;).

Below is screenshot of help.

Image 3.3.1.1 Console window

3.4 Shell File Type (.blk) Association

This tool registers and associates .blk (profile settings file extension) files when you run this tool in elevated rights. Once registration is successful, you can open .blk files from explorer directly by double-clicking the file. The below screenshot shows the .blk file associations.

Image 3.4.1 blk file association in Explorer

3.5 Explorer Shortcut Menu

This tool registers and associates to all folders when you run this tool in elevated rights. Once registration is successful, you can right-click on any folder in explorer and launch this tool by clicking ‘Bulk file processing…’ menu. The below Screenshot shows the shortcut menu associations on folders.

Image 3.5.1 Explorer Shortcut menu

4. Renaming File Names

In this section, let me present some samples about renaming file names using simple and complex expressions. This will give you a quick start on how to use this tool.

4.1 Rename File Names using WildCard Expression

4.1.1 Rename .log files to .txt files

To rename files having extension .log to .txt extension, specify the below values to the tool.

Listing 4.1.1.1 Rename .log to .txt files
FindText: *.log
ReplaceText: *.txt
Turn on 'Use WildCard' option

4.1.2 Add Today’s Date to .log file names

You can add date/time to file name either as prefix or postfix. The below sample shows how to prefix date to file names.

Listing 4.1.2.1 Prefix Today’s date to .log files names

FindText: *.log
ReplaceText: %%NOW^ddMMyy%%*.txt
Turn on 'Use WildCard' opt

ReplaceText‘ expression above illustrates about prefixing today’s date to filenames. All expressions are surrounded by ‘%%’ delimiters. In this sample, we have specified ‘NOW‘ property to get today’s date. And specified format specifier ‘ddMMyy‘. Note that the property and format are separated by ‘^’ character.

For a list of format specifiers supported by .NET, please visit the below link:

For a list of the available properties, please visit ‘Available Properties‘ Section at the bottom of the article.

4.1.3 Change case of file names

This section reveals the way to change the cases of files name either upper or lower case. In order to convert the name of the file name to upper case, you can use .NET string method ToUpper() in the ‘TransText‘ field as below.

Listing 4.1.3.1 Change the files names to upper case
FindText: *.log
ReplaceText: %%NOW^ddMMyy%%*.txt
TransText: String.ToUpper()
Turn on 'Use WildCard' opt

You can use any .NET String class instance methods to transform the filenames. For the list of available methods, please visit the link below:

4.1.4 Auto number files

This section talks about adding automatic sequence numbers to the file names. Cinchoo framework provides ‘SEQ_NO‘ property to get the next sequence number. The below sample shows how to post fix auto sequence number to the file name.

Listing 4.1.4.1 Add sequence number to file name
FindText: *.log
ReplaceText: *%%SEQ_NO^000%%.txt
TransText: String.ToUpper()
Turn on 'Use WildCard' opt

Renamed file names will be:

test0000.txt
test0001.txt
test0002.txt

The example below shows how to skip by 3 and set the next sequence number to the file name.

Listing 4.1.4.2 Skip 3 and add sequence number to file name
FindText: *.log
ReplaceText: *{{{{%%SEQ_NO%%**3}}^00000}}.txt
TransText: String.ToUpper()
Turn on 'Use WildCard' opt

Here, we use expression to skip by number 3. Since ‘*’ is a valid wildcard character, in order to use this character as multiplication purpose, we have to escape that character by repeating it (‘**’).

Renamed file names will be:

test00000.txt
test00003.txt
test00006.txt

4.1.5 Using .NET String Methods

In this section, I’ll detail about using .NET string instance methods to perform some file name transformation. Only String class instance methods can be used. The sample below shows you how to change the file names to UpperCase.

Listing 4.1.5.1 Change the case of file name to upper
FindText: *.log
ReplaceText: *%%SEQ_NO^000%%.txt
TransText: String.ToUpper()
Turn on 'Use WildCard' opt

You are allowed to use any string class instance methods or extension methods. Some of the common applicable methods are:

  • ToUpper()
  • ToLower()
  • Trim()
  • Reverse()
  • Take()
  • Skip()

The link below shows the list of String class instance methods to use from:

5. Appendix

5.1 Available Properties

Cinchoo framework offers predefined set of properties to use. You can find them by passing the below command line arguments to executable.

Listing 5.1.1 List of Available properties

>ChoBulkFileProcessor.exe /#AM:Console /#DP
ChoBulkFileProcessor [Version 1.0.0.0]
Copyright c  2012

List of available properties

@this - Context info will be replaced.

-- Cinchoo.Core.ChoGlobalDictionaryPropertyReplacer --
        APPLICATION_NAME - Current application name.
        PROCESS_ID - Current process identifier.
        THREAD_ID - Current thread identifier.
        THREAD_NAME - Current thread name.
        RANDOM_NO - Random number.
        TODAY - Today's date.
        NOW - Current time.
        SEQ_NO - Next sequence number.

-- Cinchoo.Core.ChoEnvironmentVariablePropertyReplacer --
        CURRENT_DIRECTORY - Fully qualified path of the current working directory.
        MACHINE_NAME - The NetBIOS name of this local computer.
        OS_VERSION - Current platform identifier and version number.
        PROCESSOR_COUNT - Number of processors on the current machine.
        SYSTEM_DIRECTORY - Fully qualified path of the system directory.
        SYSTEM_PAGE_SIZE - Application Current Directory
        TICK_COUNT - Number of milliseconds elapsed since the system started.
        USER_DOMAIN_NAME - Network domain name associated with the current user.
        USER_NAME - User name of the person who is currently logged on to the Windows OS.
        VERSION - Version numbers of the common language runtime.
        WORKING_SET - Amount of physical memory mapped to the process context.

-- Cinchoo.Core.ChoApplicationPropertyReplacer --
        APP_DOMAIN_NAME - Application domain name.
        APP_ENVIRONMENT - Application environment name.
        APP_BASE_DIR - Base working application directory.
        APP_CONFIG_DIR - Application configuration directory.
        APP_LOG_DIR - Application log directory.
        APP_MODE - Application run mode.
        ENTRY_ASSEMBLY_FILE_NAME - Entry assembly file name.
        ENTRY_ASSEMBLY_LOCATION - Entry assembly file path.

Image 5.1.1 List of Available properties

Cinchoo – EazyCopy, yet another RoboCopy GUI

1. Introduction

RoboCopy is a powerful tool included in the Microsoft Windows Server that is used to perform more advanced file replication tasks. The biggest benefit you’ll find is the ability to create full mirror duplicates of two file structures (including all subdirectories and files, if you choose). RoboCopy also allows you to preserve all of the associated file information, including date and time stamps, security access control lists (ACLs) and more which is missing from normal file copy operations.

For people who like to work with command line, RoboCopy.exe tool as it is comes with package is great enough for them. However for those who are comfortable to work with GUI, here it is EazyCopy, a simple and intuitive GUI tool to RoboCopy command.

This tool is developed using Cinchoo – An application framework for .NET. It is another working example of using some of the key features of Cinchoo framework.

2. Features

  • Simple and Intuitive GUI
  • Compose and Save the options as profile for later use
  • Run multiple instances
  • Run and launch from Windows System Tray
  • Provides text box with RoboCopy commands associated with the changes to the properties
  • Display immediate hints to an option highlighted in the property grid or in the text editor
  • Able to run the RoboCopy within the GUI
  • ‘Eazy Copy…’ Windows Explorer extension
  • 32-bit or 64-bit support

3. How to Run

This tool can be started and run as:

  • Console Application
  • Windows Application
  • Tray Application
  • Shell File Type (.ezy) Association
  • Explorer Shortcut Menu (‘Eazy Copy…’)

3.1 Window Mode

By default, if you run the executable (ChoEazyCopy.exe), it will start as a Windows application. In here, you can compose RoboCopy options, save them to profile (.ezy file) file and run them. The main window looks like below:

Image 3.1.1 Main window

3.1.1 Main Toolbar

Main application toolbar contains a set of application command buttons that gives users quick access to do compose, open, save profiles and control the execution of file operations.

Image 3.1.1.1 Main Toolbar

  • – Create new profile settings file.
  • – Open a existing profile settings file.
  • – Save the profile settings to file.
  • – Save the profile settings to new file.
  • – Start the RoboCopy processing.
  • – Stop the RoboCopy processing.
  • – Erase the status messages.
  • Highlighted in Red area shows the name of the profile settings file.

3.1.2 Folders Selection

This section of controls allows to choose the folders needed for RoboCopy operations.

Image 3.1.2.1 Choose Folders

  • Source Directory – Source path where the files and sub folders are copied from
  • Destination Directory – Target path where the files and sub folders are copied to

3.1.3 Output

Image 3.1.4 Output

This output window shows the output messages of the RoboCopy operation.

3.1.4 Settings Help

It is a property grid window to visually edit and manage RoboCopy command line options group together by category.

It has the below 4 categories:

  • Copy Options
  • Logging Options
  • Retry Options
  • Common Options

Each category contains a list of RoboCopy options. You can follow the below link for more help about RoboHelp:

Common Options
  • AdditionalParams – Any additional parameters not listed in the property grid you may want to pass to RoboCopy, you can specify here.
  • Files – The files to be copied from source to target location. Wildcard accepted.
  • RoboCopyFilePath – If the RoboCopy is not in the PATH, you can specify the exact location of the RoboCopy executable here.

3.2 Tray Application Mode

Sometimes, you may want to keep this tool running all the time and quickly go back to get access to this tool to carry out bulk file operations. In such cases, you can let them run in tray mode. By pressing ‘minimize’ button, the tool will be made to run in tray mode.

After minimizing the main window, the tool will run as system tray. The below image shows the tool in system tray.

Image 3.2.1 System Tray

In this mode, the below features are available to you. These will be available when you right click on this tool application icon in tray taskbar.

  • Open – To restore the window
  • Launch New Instance – Open a new instance of EazyCopy application
  • Always on Top – To keep the window as topmost of all other Windows applications
  • Run at System Startup – This option lets the application start up automatically when the system starts

The below image shows the system tray context menu of this tool.

Image 3.2.2 System Tray Context Menu

3.3 Console Mode

This tool can be started as Console Application by passing /#AM:Console command line parameter to the executable.

Listing 3.3.1 Running as console mode

>ChoEazyCopy.exe /#AM:Console test.ezy /s:"C:\Test1" /d:"C:\Test2"

Where:

  • /#AM:Console – Instruct the tool to start in console mode
  • test.ezy – Profile Settings file path, either absolute or relative file path.
  • /s – Source directory. Optional. If not specified, it will be picked up from settings file.
  • /d – Destination directory. Optional. If not specified, it will be picked up from settings file.

3.3.1 Help

To get help of the application, pass /? in command line.

Listing 3.3.1.1 Getting help
>ChoEazyCopy.exe /#AM:Console /?
ChoEazyCopy [Version 1.0.0.0]
Copyright c  2015

CHOEAZYCOPY SettingsFilePath [/s:<string>] [/d:<string>]

        SettingsFilePath        Settings file path.
        /s                      Source directory.
        /d                      Destination directory.

Below is the screenshot of help.

Image 3.3.1.1 Console window

3.4 Shell File Type (.ezy) Association

This tool registers and associates .blk (profile settings file extension) files when you run this tool in elevated rights. Once registration is successful, you can open .blk files from explorer directly by double-clicking the file. The below screenshot shows the .blk file associations.

Image 3.4.1 ezy file association in Explorer

3.5 Explorer Shortcut Menu

This tool registers and associates to all folders when you run this tool in elevated rights. Once registration is successful, you can right-click on any folder in explorer and launch this tool by clicking ‘Eazy copy…’ menu. The below screenshot shows the shortcut menu associations on folders.

Image 3.5.1 Explorer Shortcut menu

Cinchoo – Xsd GUI tool

Download Source.zip – 52.5 KB

Download Binary.zip – 513.8 KB

Contents

1. Introduction

Many time we come across the need of parsing XML document and creating XML schema or common language runtime classes/entities. These entities are later passed between multiple methods, stored as configuration or used to perform some manipulation. Hand wrting code for parsing these entities from XML document is tedious.

Microsoft has a nifty little tool called xsd.exe which lets you create serializable classes for the .NET framework from an XSD or XML file. Unfortunately it doesn’t come with the latest versions of Visual Studio and you have to download the Windows SDK to get hold of it.

This article presents the new Cinchoo GUI interface to xsd.exe tool to to parse XML documents and generating entities. This new interface built using Cinchoo framework, using most of its features like Configuration, Command line parsing, Application host, binding to controls etc. This is one of the the working example of building an application using this versatile .NET framework easily.

2. Features

Cinchoo Xsd tool provides following featutes

  1. Simplified GUI interface
  2. Support of Nested Xml files (refer Handling Nested Xml files article for more information about it.)
  3. Can run as console mode (passing /#AM:Console as command line argument)
  4. Can run as tray application (on minimizing the window)

3. How to run

This tool can be started as

  • Console Application
  • Windows Application
  • Tray Application

3.1 Window Mode

By default, if you run the executable (ChoXsd.exe), this will start as Windows application. The main window looks like below

Image 3.1.1 Main window 

  • Xml File Path – Input xml file path.
  • Output Directory – Destination directory where the generated files are created. If not specified, the generated files will be created under the input xml file directory.
  • Options – Please refer Microsoft Xsd.exe tool document for each option.
  • Status – All the generation process status messages are posted.
  • Generate – Button is to start the generation process.
  • Cancel – Button to cancel the generation process.

3.2 Tray Application Mode

Sometime you may want to keep this tool running all the time and quickly go back to get access to this tool to carry out generation of entities. In such cases, you can let them run in tray mode. By pressing ‘minimize’ button, the tool will be made to run in tray mode.

In this mode, below features are available to you. These will be available when you right click on this tool application icon in tray taskbar

  • Open – To restore the window.
  • Always on Top – To keep the window as topmost of all other windows applications.
  • Run at System Startup – This option let the application start up automatically when system starts.
  • Show in Taskbar – To show the application in the Taskbar.

3.3 Console Mode

This tool can be started as Console Application by passing /#AM:Console command line parameter to the executable.

Listing 3.3.1 Running as console mode 

>ChoXsd.exe /#AM:Console

3.3.1 Help

To get help of the application, pass /? in command line

Listing 3.3.1.1 Getting help

>ChoXsd.exe /#AM:Console /?
ChoXsd [Version 1.0.0.1]
Copyright c  2014

CHOXSD xmlfile [/order] [/f] [/edb] [/n:] [/l:] [/c] [/o:] [/d] [/e:] [/eld]

        xmlfile Name of an xml file to infer xsd schema from.
        /order  Generate explicit order identifiers on all particle members.
        /f      Generate fields instead of properties.
        /edb    Implement INotifyPropertyChanged interface on all generated
                types to enable data binding..
        /n      The namespace for generated class files. The default
                namespace is the global namespace.
        /l      The language to use for the generated code. Choose from
                'CS', 'VB', 'JS', 'VJS', 'CPP' or provide a fully-qualified
                name for a class implementing
                System.CodeDom.Compiler.CodeDomProvider. The default
                language is 'CS' (CSharp).
        /c      Generate classes for this schema.
        /o      The output directory to create files in. The default is the
                current directory.
        /d      Generate sub-classed DataSet for this schema.
        /e      Element from schema to process.
        /eld    Generate LINQ-enabled sub-classed Dataset for the schemas
                provided.

Below is screenshot of help

Image 3.3.1.1 Console window 

4. Configuration

UPDATE:

This application uses Microsoft Xsd.exe tool to generate entities. This program automatically discovers Xsd.exe tool under ‘C:\Program Files\Microsoft SDKs\Windows’ folder, remember it at startup. If you wish to use different version of this tool (Xsd.exe) in different location, you can configure it by opening [AppExe].config file and specifying Microsoft SDK path containing Xsd.exe tool in ‘SDKDirectory‘ appsetting.

Listing 4.1 [AppExe].config file

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <appSettings>
   <add key="SDKDirectory" value="C:\Program Files\Microsoft SDKs\Windows" />
 </appSettings>
</configuration>

Cinchoo – Bulk Files & Folders rename utility

ChoBulkFileRenameTool

Download Binary (Zip)

Download Source (Zip)

This tool helps to rename bulk files and folders recursively. It was written in using WPF/C#/VS.NET 2010.

Features

  • Bulk file and folders rename matching either wildcard or regular expression patterns
  • Runs on Windows 95/98/ME/NT4/2k/2k3/2k8/XP/Vista/7

How to use

  • Click ‘Start’ whenever you are ready to rename files. Any time you can can start this process.
  • Type a full path of the file or folder in ‘Choose a File / Folder’ text box, then click ‘Add’ button to add it to ‘File(s) / Folder(s)’ list box. Or you can click ‘Browse’ button, to choose the file/folder for rename.
  • At any time, you can select an item in ‘File(s) / Folder(s)’ list box, remove it using ‘Remove’ button.
  • In ‘Find/Replace’ text boxes, you can specify either the wildcard or regular expression to identify files and folders for rename. (Please visit Regular Expression Cheat Sheet for help in creating regular expression)
  • Check ‘Match Files’ or ‘Match Folders’ check boxes, in order to include them for rename process respectively.
  • Check ‘Preview Mode’ option, if you just want to see the files and folders are renamed in the ‘Status’ box or in the log file under ‘Logs’ folder. This option will not rename the files or folder names.
  • Check ‘Include Sub Dir’ option, to include all sub directories for rename process.
  • In ‘Status’ box, you can view the statues of the file renames.
  • Click ‘Clear’ button anytime to clear the ‘Status’ box.

Tips

  • You can drag and drop file(s) or folder(s) to this tool for easy cleanup process.

Cinchoo – Files & Folders cleanup command line tool

ChoFileFolderCleanupConsoleTool

Download Binary (Zip)

Download Source Files (Zip)

This command line tool to remove matching files and folders from disk. It is written in using C#/VS.NET 2010.

You require .NET Framework in order to run this tool. You can download it from here.

Features

  • Clean up files and folders matching regular expression pattern
  • Works with single file as well as files in a folder
  • Runs on Windows 95/98/ME/NT4/2k/2k3/2k8/XP/Vista/7

How to use

  • Run the ChoFileFolderCleanupConsoleTool.exe file in command line with the following command line parameters

/P                   Turn on preview mode.
/I                     Include subdirectry.
/R                   Remove directory if empty.
/MD               Match folder names.
/DMF            Don’t Match file names.
/F                   File name matching regular expression.
<default>      Semicolon(;) seperated Files or Folders path.

Example

ChoFileFolderCleanupConsoleTool.exe  /I  "C:\SampleFileOrFolder1,C:\SampleFileOrFolder2"
ChoFileFolderCleanupConsoleTool.exe  /I /MD  "C:\SampleFileOrFolder1,C:\SampleFileOrFolder2"
ChoFileFolderCleanupConsoleTool.exe  /DMF /I /P  "C:\SampleFileOrFolder1,C:\SampleFileOrFolder2"

PS
Please visit Regular Expression Cheat Sheet for help in creating regular expression

Cinchoo – Files & Folders Cleanup tool

ChoFileFolderCleanupTool

Download Binary (Zip)

Download Source (Zip)

This tool helps to remove matching files and folders from disk. It was written in using WPF/C#/VS.NET 2010.

Features

  • Clean up files and folders matching regular expression pattern
  • Works with single file as well as files in a folder
  • Runs on Windows 95/98/ME/NT4/2k/2k3/2k8/XP/Vista/7

How to use

  • Click ‘Start’ whenever you are ready to clean up files. Any time you can can start this cleanup process.
  • Type a full path of the file or folder in ‘Choose a File / Folder’ text box, then click ‘Add’ button to add it to ‘File(s) / Folder(s)’ list box. Or you can click ‘Browse’ button, to choose the file/folder for cleanup.
  • At any time, you can select an item in ‘File(s) / Folder(s)’ list box, remove it using ‘Remove’ button.
  • In ‘Matching Expr’ text box, you can specify the regular expression to identify files and folders for cleanup. (Please visit Regular Expression Cheat Sheet for help in creating regular expression)
  • Check ‘Match Files’ or ‘Match Folders’ check boxes, in order to include them for cleanup process respectively.
  • Check ‘Preview Mode’ option, if you just want to see the files and folders are cleaned in the ‘Status’ box or in the log file under ‘Logs’ folder. This option will not delete files or folders.
  • Check ‘Rm Dir If Empty’ option, if you want to remove empty directory during this process.
  • Check ‘Include Sub Dir’ option, to include all sub directories for clean up process.
  • In ‘Status’ box, you can view the statues of the file conversion.
  • Click ‘Clear’ button anytime to clear the ‘Status’ box.

Tips

  • You can drag and drop file(s) or folder(s) to this tool for easy cleanup process.

Cinchoo – TABS to Spaces converter command line tool

ChoTABSToSpacesConversionConsoleTool

Download Binary (Zip)

Download Source (Zip)

This command line tool converts tab characters to space characters and vice verse in text files. It is written in using C#/VS.NET 2010.

You require .NET Framework in order to run this tool. You can download it from here.

Features

  • Converts any text files
  • Works with single file as well as files in a folder
  • Number of Tab Size can be customized
  • Runs on Windows 95/98/ME/NT4/2k/2k3/2k8/XP/Vista/7

How to use

  • Run the ChoTabsToSpacesConversionConsoleTool.exe file in command line with the following command line parameters

/SI                   Turn on Spaces to TABS, otherwise converts TABS to Spaces.
/FX                 Comma seperated file extensions.
/I                     Include subdirectry.
/O                   Output directory.
/N                   TAB size in spaces.
<default>      Semicolon(;) seperated Files or Folders path.

Example

ChoTabsToSpacesConversionConsoleTool.exe  /I  &quot;C:\SampleFileOrFolder1,C:\SampleFileOrFolder2&quot;
ChoTabsToSpacesConversionConsoleTool.exe  /I /N:4  &quot;C:\SampleFileOrFolder1,C:\SampleFileOrFolder2&quot;
ChoTabsToSpacesConversionConsoleTool.exe  /SI /I /N:4  &quot;C:\SampleFileOrFolder1,C:\SampleFileOrFolder2&quot;

Cinchoo – TABS to Spaces converter tool

ChoTABSToSpacesConversionTool

Download Binary (Zip)

Download Source (Zip)

This tool converts tab characters to space characters and vice verse in text files. It is written in using WPF/C#/VS.NET 2010.

Features

  • Converts any text files
  • Works with single file as well as files in a folder
  • Number of Tab Size can be customized
  • Runs on Windows 95/98/ME/NT4/2k/2k3/2k8/XP/Vista/7

How to use

  • Click ‘Start’ whenever you are ready to convert files. Any time you can can start this conversion process.
  • Type a full path of the file or folder in ‘Choose a File / Folder’ text box, then click ‘Add’ button to add it to ‘File(s) / Folder(s)’ list box. Or you can click ‘Browse’ button, to choose the file for conversion.
  • At any time, you can select an item in ‘File(s) / Folder(s)’ list box, remove it using ‘Remove’ button.
  • Type a output folder name in ‘Output Folder’ text box. This is where all the converted files will be written. If the folder not exists, will be created automatically.
  • In ‘Valid File Exts’ text box, you can specify the type of files to be considered for conversion. Multiple file extensions can be specified in comma separated format.
  • Choose mode either ‘TAB to spaces’ or ‘Spaces to TAB’ to convert files in respective way.
  • Specify ‘Tab Size’ in the range of 1-60, amount of spaces for a TAB character.
  • In ‘Status’ box, you can view the statues of the file conversion.
  • Click ‘Clear’ button anytime to clear the ‘Status’ box.

Tips

  • You can drag and drop file(s) or folder(s) to this tool for easy conversion process.