iamtheky Posted May 26, 2016 Share Posted May 26, 2016 (edited) This thread will house the scripts i (or anyone who contributes) create while playing with Bash on Windows. First up, a simple mount command. I am still trying to get the stdout, but piping to files will suffice for now. I am running Win 10 Build 14342.rs1_release.160506-1708 **Do -- Until will be cleaned up (or completely scrapped) when i can find a reliable way to deal with output. #include<array.au3> #include <WinAPIFiles.au3> _WinAPI_Wow64EnableWow64FsRedirection(False) $outfile = "test_mount_output.txt" $iPID = run("C:\Windows\System32\bash.exe | mount > " & $outfile , "" , @SW_HIDE) Do sleep(100) Until FileExists($outfile) sleep(100) processclose($iPID) _ArrayDisplay(stringsplit(stringtrimright(fileread($outfile) , 1) , @LF , 2)) Edited May 26, 2016 by iamtheky ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Link to comment Share on other sites More sharing options...
iamtheky Posted May 26, 2016 Author Share Posted May 26, 2016 Diff two files: #include<array.au3> #include <WinAPIFiles.au3> _WinAPI_Wow64EnableWow64FsRedirection(False) $file = "test_mount_output.txt" $file2 = "test_mount_output_2.txt" $outfile = "differences.txt" $iPID = run("C:\Windows\System32\bash.exe | diff " & $file & " " & $file2 & "> " & $outfile , "" , @SW_HIDE) Do sleep(100) Until FileExists($outfile) sleep(100) processclose($iPID) $aChanges = stringregexp(fileread($outfile) , ".*\s.*\s---\s>.*?\)" , 3) _ArrayDisplay($aChanges) ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Link to comment Share on other sites More sharing options...
iamtheky Posted May 31, 2016 Author Share Posted May 31, 2016 Dump Ntuser.pol to a readable text file on your desktop. *Still needs cleaning but functional #include<file.au3> #include <WinAPIFiles.au3> _WinAPI_Wow64EnableWow64FsRedirection(False) $file = "/mnt/c/users/" & @UserName & "/ntuser.pol" $outfile = "NTuserPol_Copy.txt" $iPID = run("C:\Windows\System32\bash.exe | cat " & $file & " > /mnt/c/users/" & @UserName & "/desktop/" & $outfile , "" , @SW_HIDE) While 1 sleep(100) If FileExists("C:\users\" & @UserName & "\desktop\" & $outfile) Then ProcessClose($iPID) Exit EndIf Wend ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Link to comment Share on other sites More sharing options...
iamtheky Posted July 5, 2016 Author Share Posted July 5, 2016 (edited) This wraps fdupes function so that you end with duplicate file results in the cmd.exe console, though still have to copy/paste it out until someone smart fixes the piping issue. I have not benchmarked anything, but fdupes is pretty quick. #requireadmin #include <WinAPIFiles.au3> _WinAPI_Wow64EnableWow64FsRedirection(FALSE) _fdupes("C:\Program Files (x86)\AutoIt3\" , 1) Func _fdupes($DirToCheckForDupes , $Recurse = 0) FileDelete("c:\Windows\Temp\testbashfdupes.txt") $ErrFileWrite = $Recurse = 0 ? FileWrite("c:\Windows\Temp\testbashfdupes.txt" , "fdupes .") : FileWrite("c:\Windows\Temp\testbashfdupes.txt" , "fdupes -r .") run("cmd /k bash //mnt/c//Windows/Temp/testbashfdupes.txt" , $DirToCheckForDupes) EndFunc Edited July 5, 2016 by iamtheky ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Link to comment Share on other sites More sharing options...
iamtheky Posted July 7, 2016 Author Share Posted July 7, 2016 Better method of capturing command line without affecting progress expandcollapse popup#requireadmin #include <WinAPIFiles.au3> #include <Array.au3> _WinAPI_Wow64EnableWow64FsRedirection(FALSE) opt("wintitlematchmode" , 2) _ArrayDisplay( _fdupes("C:\Program Files (x86)\AutoIt3\" , 1) ) Func _fdupes($DirToCheckForDupes , $Recurse = 0) FileDelete("c:\Windows\Temp\testbashfdupes.txt") $ErrFileWrite = $Recurse = 0 ? FileWrite("c:\Windows\Temp\testbashfdupes.txt" , "fdupes .") : FileWrite("c:\Windows\Temp\testbashfdupes.txt" , "fdupes -r .") $iPID = run("cmd /k bash //mnt/c//Windows/Temp/testbashfdupes.txt" , $DirToCheckForDupes) ClipPut("") Do winactivate("cmd.exe") winwaitactive("cmd.exe") WinSetOnTop("cmd.exe" , "" , 1) send("^a" ) send("{ENTER}") sleep(2000) consolewrite(stringright(ClipGet() , 1) & @LF) Until stringright(ClipGet() , 1) = ">" ProcessClose($iPID) $aOut = stringsplit(clipget() , @LF , 2) For $i = ubound($aOut) - 1 to 0 step -1 If stringleft($aOut[$i] , 2) = "Pr" OR stringleft($aOut[$i] , 2) = "Bu" OR stringleft($aOut[$i] , 2) = "C:" Then _ArrayDelete($aOut , $i) Next return $aOut EndFunc ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Link to comment Share on other sites More sharing options...
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