rinoatwisted Posted July 28, 2017 Posted July 28, 2017 Hello guys, im just started in programming and all.. and i wanted to learn autoscript to. Was wondering if any can convert my one-liner batch script to an autoit script - FOR /F %%i IN (names.txt) DO @copy system.act %%i.act So what this does is open and read the file "names.txt" incrementally, and copy a certain file named "system.act" and rename it to each name that is listed on "names.txt" So im trying this on autoit but no idea how to start file manipulation and do command - #include <File.au3> $file = "c:\names.txt" FileOpen($file, 0) For $i = 1 to _FileCountLines($file) $line = FileReadLine($file, $i) Can anyone help me or guide me on how to continue this to get the result that i want..:)? Thanks
Trong Posted July 28, 2017 Posted July 28, 2017 You can try: #NoTrayIcon #include <MsgBoxConstants.au3> Global Const $sFileListName = @HomeDrive & "\names.txt" ; path of file list name Global Const $iFile = @HomeDrive & "\system.act" ; Path to file want copy and rename Global Const $iDirCopyTo = @HomeDrive Global Const $iExtFile = ".act" Global Const $sOverWrite = True If Not FileExists($sFileListName) Then Exit MsgBox($MB_ICONERROR + $MB_TOPMOST, "Error 1", "The file doesn't exist: " & @CRLF & $sFileListName) If Not FileExists($iFile) Then Exit MsgBox($MB_ICONERROR + $MB_TOPMOST, "Error 2", "The file doesn't exist: " & @CRLF & $iFile) Global $iNewPath, $sListName = FileReadToArray($sFileListName) ; Read list name to array by line For $i = 0 To UBound($sListName) - 1 $iNewPath = $iDirCopyTo & "\" & $sListName[$i] & $iExtFile ConsoleWrite("Copy (" & $i & ") to :> " & $iNewPath & " :>: " & (FileCopy($iFile, $iNewPath, $sOverWrite) ? "OK" : "Error") & @CRLF) Next rinoatwisted 1 Enjoy my work? Buy me a 🍻 or tip via ❤️ PayPal
rinoatwisted Posted July 28, 2017 Author Posted July 28, 2017 Holy **** Its perfect. I like to thank you that you make an effort to actually make me a whole script.. and i learned a lot from your script. the real reason why i want it on autoit is that, the batch file that i made does not work if there is a sp. charcter on the file name.. and i just tried this code and WOW.. thank you again from the bottom of my hearts..this will save me a countless hours.. thanks
rinoatwisted Posted July 28, 2017 Author Posted July 28, 2017 One question though, the file being renamed has a space between the last letter and the .act extension. for example "nextserver .act" is should be "nextserver.act" only no space..:) can i ask where to edit it? or remove the space?
Trong Posted July 28, 2017 Posted July 28, 2017 Try search before ask! use StringStripWS() or StringReplace() #NoTrayIcon #include <MsgBoxConstants.au3> Global Const $sFileListName = @HomeDrive & "\names.txt" ; path of file list name Global Const $iFile = @HomeDrive & "\system.act" ; Path to file want copy and rename Global Const $iDirCopyTo = @HomeDrive Global Const $iExtFile = ".act" Global Const $sOverWrite = True If Not FileExists($sFileListName) Then Exit MsgBox($MB_ICONERROR + $MB_TOPMOST, "Error 1", "The file doesn't exist: " & @CRLF & $sFileListName) If Not FileExists($iFile) Then Exit MsgBox($MB_ICONERROR + $MB_TOPMOST, "Error 2", "The file doesn't exist: " & @CRLF & $iFile) Global $iNewPath, $sListName = FileReadToArray($sFileListName) ; Read list name to array by line For $i = 0 To UBound($sListName) - 1 ;~ $iNewPath = $iDirCopyTo & "\" & $sListName[$i] & $iExtFile $iNewPath = $iDirCopyTo & "\" & StringStripWS($sListName[$i] & $iExtFile, 8) ; No space on file name ;~ $iNewPath = $iDirCopyTo & "\" & StringReplace($sListName[$i] & $iExtFile, " .", ".") ; No space on file name ConsoleWrite("Copy (" & $i & ") to :> " & $iNewPath & " :>: " & (FileCopy($iFile, $iNewPath, $sOverWrite) ? "OK" : "Error") & @CRLF) Next Enjoy my work? Buy me a 🍻 or tip via ❤️ PayPal
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