ripcord Posted March 23, 2018 Posted March 23, 2018 Hi, I am new to AutoIt. I want to do the following. - I have (movie) folders which looks like this: The Lion King\The Lion King (1994).avi 10 Cloverfield Lane\10 Cloverfield Lane (2016).mkv .. - What I want to do is take the file name Ex: 10 Cloverfield Lane (2016).mkv and rename the folder as 10 Cloverfield Lane (2016) Is this possible? Reason I am asking is I have lot of folders and it is really time consuming. Thank you.
KickStarter15 Posted March 23, 2018 Posted March 23, 2018 (edited) @ripcord, Welcome to AutoIt forum. Yes by doing the below. Actually there are lots of function that can do what you need. By getting the file name, you can easily create folder by doing below: DirCreate($sFilePath & "\" & $sFileName) This one will get the filename as well (see help file): #include <File.au3> Local $sDrive = "", $sDir = "", $sFileName = "", $sExtension = "" $Path = @ScriptDir & "\10 Cloverfield Lane (2016).mkv" _PathSplit($Path, $sDrive, $sDir, $sFileName, $sExtension) MsgBox(0,"",$sFileName) There are lots of ways to do what you want. Edited March 23, 2018 by KickStarter15 Subz 1 Programming is "To make it so simple that there are obviously no deficiencies" or "To make it so complicated that there are no obvious deficiencies" by C.A.R. Hoare.
Subz Posted March 23, 2018 Posted March 23, 2018 Here is a function based upon KickStarter15 code to also rename the folder using the filename minus the extension: #include <Array.au3> #include <File.au3> Global $aFilePath = _FileListToArrayRec(@ScriptDir, "*.*", 1, 0, 0, 2) If @error Then Exit MsgBox(16, "Error", "No files found") For $i = 1 To $aFilePath[0] _FolderRename($aFilePath[$i]) Next Func _FolderRename($_sFileName) Local $sDrive = "", $sDir = "", $sFileName = "", $sExtension = "" Local $aPathSplit = _PathSplit($_sFileName, $sDrive, $sDir, $sFileName, $sExtension) ;~ Remove Beginning and End BackSlash "\" from $sDir Local $sSourceDir = $sDrive & StringTrimRight($sDir, 1) Local $sTargetDir = StringTrimRight($sSourceDir, StringInStr($sSourceDir, "\", 0, -1) - 1) & $sFileName MsgBox(32, "Path Rename", "Rename: " & @CRLF & $sSourceDir & @CRLF & "To: " & @CRLF & $sTargetDir) ;~ Uncomment function below rename the folder ;~ DirMove($sSourceDir, $sTargetDir, 1) EndFunc
ripcord Posted March 23, 2018 Author Posted March 23, 2018 Thanks guys. I will explore more on this. Cheers.
ripcord Posted March 23, 2018 Author Posted March 23, 2018 12 hours ago, Subz said: Here is a function based upon KickStarter15 code to also rename the folder using the filename minus the extension: #include <Array.au3> #include <File.au3> Global $aFilePath = _FileListToArrayRec(@ScriptDir, "*.*", 1, 0, 0, 2) If @error Then Exit MsgBox(16, "Error", "No files found") For $i = 1 To $aFilePath[0] _FolderRename($aFilePath[$i]) Next Func _FolderRename($_sFileName) Local $sDrive = "", $sDir = "", $sFileName = "", $sExtension = "" Local $aPathSplit = _PathSplit($_sFileName, $sDrive, $sDir, $sFileName, $sExtension) ;~ Remove Beginning and End BackSlash "\" from $sDir Local $sSourceDir = $sDrive & StringTrimRight($sDir, 1) Local $sTargetDir = StringTrimRight($sSourceDir, StringInStr($sSourceDir, "\", 0, -1) - 1) & $sFileName MsgBox(32, "Path Rename", "Rename: " & @CRLF & $sSourceDir & @CRLF & "To: " & @CRLF & $sTargetDir) ;~ Uncomment function below rename the folder ;~ DirMove($sSourceDir, $sTargetDir, 1) EndFunc instead of @ScriptDir how can Provide the root of my folder which contains the subfolders ?
Subz Posted March 23, 2018 Posted March 23, 2018 Just change @ScriptDir to whatever you like, for example: "C:\Data"
ripcord Posted March 23, 2018 Author Posted March 23, 2018 10 minutes ago, Subz said: Just change @ScriptDir to whatever you like, for example: "C:\Data" Thanks. Worked. Guesss I need to work on this script a bit as this is moving files to different location instead of reanme
Subz Posted March 23, 2018 Posted March 23, 2018 Actually AutoIt doesn't have a rename function so you use DirMove to rename the folder, if you look at the help file it mentions this in the remarks section.
ripcord Posted March 24, 2018 Author Posted March 24, 2018 8 hours ago, Subz said: Actually AutoIt doesn't have a rename function so you use DirMove to rename the folder, if you look at the help file it mentions this in the remarks section. Thank you. This really helps. Cheers.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now