using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Diagnostics; using BasicNodes.Scripting; using FileFlows.Plugin; using FileFlows.Plugin.Attributes; namespace FileFlows.BasicNodes.Scripting; /// /// Flow element that executes a bat script /// public class BatScript : ScriptBase { /// public override string Icon => "svg:bat"; /// public override string HelpUrl => "https://fileflows.com/docs/plugins/basic-nodes/bat-script"; /// protected override ScriptLanguage Language => ScriptLanguage.Batch; /// /// Gets or sets the code to execute /// [Required] [DefaultValue(@" REM A PowerShell script can communicate with FileFlows to determine which output to call next by using exit codes. REM Exit codes are zero-based, so: REM Exit Code 0 corresponds to Output 1 REM Exit Code 1 corresponds to Output 2 REM Exit Code 2 corresponds to Output 3 REM and so on. Exit codes outside the defined range will be treated as a failure output. REM Replace {file.FullName} and {file.Orig.FullName} with actual values SET WorkingFile={file.FullName} SET OriginalFile={file.Orig.FullName} REM Example commands using the variables echo Working on file: %WorkingFile% echo Original file location: %OriginalFile% REM Add your actual batch commands below REM Example: Copy the working file to a backup location REM copy ""%WorkingFile%"" ""C:\Backup\%~nxWorkingFile%"" REM Set the exit code to 0 EXIT /B 0 ")] [Code(2, "bat")] public override string Code { get; set; } }