Last active
April 11, 2022 08:18
-
-
Save mlabrkic/207565c149c5059964d364a9db5fedac to your computer and use it in GitHub Desktop.
"Multi Commander" script: Create folder and move selected files to that folder (+ docs/multiscript/functions), http://multicommander.com/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Create_folder_and_move_selected_files, F12 | |
// "Multi Commander" script: | |
// Create folder and move selected files to that folder (+ docs/multiscript/functions) | |
// http://forum.multicommander.com/forum/index.php/topic,2079.0.html | |
// Contributor: pncdaspropagandas | |
// ######################################################### | |
// ### Docs ### | |
// Inserted, 2022-02M-20 16:20:25 | |
// User Defined Commands - MultiScript: | |
// http://multicommander.com/docs/UDC_multiscript | |
// MultiScript Language Syntax: | |
// http://multicommander.com/docs/multiscript/languagesyntax | |
// --------------------------------------------------------- | |
// http://multicommander.com/docs/multiscript/functions/misc | |
// AskText | |
// <num> AskText( <str> label, <str> inputText, <num> option ); | |
// http://multicommander.com/docs/multiscript/functions/misc#asktext | |
// MessageBox | |
// <num> MessageBox( <str> caption, <str> text, <num> options ); | |
// http://multicommander.com/docs/multiscript/functions/misc#messagebox | |
// Log - Log text to a log window. | |
// <num> Log( <num> logID, <num> logLevel, <str> logText ); | |
// http://multicommander.com/docs/multiscript/functions/misc#log | |
// --------------------------------------------------------- | |
// http://multicommander.com/docs/multiscript/functions/filesystem | |
// FileExists | |
// @var $res = FileExists( "C:\\temp\\MyFile.txt" ); | |
// http://multicommander.com/docs/multiscript/functions/filesystem#fileexists | |
// IsFolder | |
// @var $res = IsFolder( "C:\\temp" ); | |
// http://multicommander.com/docs/multiscript/functions/filesystem#isfolder | |
// MakeDir | |
// MakeDir( "C:\\Temp\NewFolder\\SubFolder\\", "LOCAL,RECURSIVE" ); | |
// MakeDir( "C:\\Temp\\MyFiles.zip\\Folder", "" ); | |
// http://multicommander.com/docs/multiscript/functions/filesystem#makedir | |
// MoveFile | |
// MoveFile( $targetPath, $sourceFile, "NODIALOG, OVERWRITE_ALL" ); | |
// http://multicommander.com/docs/multiscript/functions/filesystem#movefile | |
// --------------------------------------------------------- | |
// http://multicommander.com/docs/multiscript/functions/string | |
// StrSub | |
// <str> StrSub(<str> input, <num> offset, <num> length); | |
// http://multicommander.com/docs/multiscript/functions/string#strsub | |
// StrIsEqual | |
// <num> StrIsEqual(<str> string1, <str> string2); | |
// http://multicommander.com/docs/multiscript/functions/string#strisequal | |
// StrLen | |
// @var $len = StrLen( $str ); | |
// http://multicommander.com/docs/multiscript/functions/string#StrLen | |
// --------------------------------------------------------- | |
// MultiScript - Get and Set Selection and Paths | |
// http://multicommander.com/docs/multiscript/functions/getfilefromview | |
// GetSourceSelectedPaths | |
// @var $arr = GetSourceSelectedPaths("IGNORE_FOCUS"); | |
// Get an array with the full paths of all selected items in the source view. | |
// http://multicommander.com/docs/multiscript/functions/getfilefromview#getsourceselectedpaths | |
// --------------------------------------------------------- | |
// MultiScript - Array functions | |
// http://multicommander.com/docs/multiscript/functions/array | |
// ######################################################### | |
// Ask user for folder name | |
@var $answer = AskText("Type name of the new folder to create and move selected files.", "New folder", 0); | |
// If user canceled, abort | |
if ( $answer == 0 ) | |
{ | |
break; | |
} | |
// Folder exists? | |
@var $source_path = GetSourcePath(); | |
if( FileExists($source_path ^ $answer) > 0 ) | |
{ | |
MessageBox("Error", "Typed folder already exists.", 0); | |
break; | |
} | |
else | |
{ | |
// Create empty folder | |
// Check if source path is LOCAL | |
@var $options; | |
if( IsFolder($source_path) ) | |
{ | |
@var $colon_check = StrSub($source_path, 1, 1); | |
if( StrIsEqual($colon_check, ":") ) | |
{ | |
$options = "LOCAL,RECURSIVE"; | |
} | |
else | |
{ | |
$options = ""; | |
} | |
} | |
else | |
{ | |
$options = ""; | |
} | |
if( MakeDir($source_path ^ $answer, $options) == 0 ) | |
{ | |
Log( 1, 10, "Created : " + $source_path ^$answer ); | |
@var $selected_files = GetSourceSelectedPaths(); | |
@var $n; | |
@var $len = StrLen($answer) - 1; | |
@var $slash = StrSub($answer, $len, 1); | |
if( StrIsEqual($slash, "\\") ) | |
{ | |
$slash = ""; | |
} | |
else | |
{ | |
$slash = "\\"; | |
} | |
for( $n=0; $n<arrayCount($selected_files); $n++ ) | |
{ | |
// MoveFile has a bug where target path has to end with slash | |
if( $n == 0 ) | |
{ | |
MoveFile($source_path ^ $answer + $slash, $selected_files[$n], "NODIALOG,NOWAIT,USEEXISTINGQUEUE"); | |
} | |
else | |
{ | |
MoveFile($source_path ^ $answer + $slash, $selected_files[$n], "NODIALOG,NOWAIT,USEEXISTINGQUEUE"); | |
} | |
} | |
// Select created folder | |
// SetClipboardText($source_path ^ $answer); | |
// MC.RunCmd ID="Core.1312" | |
// MC.Explorer.Selection.UnselectAll | |
} | |
else | |
{ | |
MessageBox("Error", "Error while creating folder.", 0); | |
break; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment