iamtheky Posted May 26, 2016 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 ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__)
iamtheky Posted May 26, 2016 Author 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) ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__)
iamtheky Posted May 31, 2016 Author 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 ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__)
iamtheky Posted July 5, 2016 Author 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 ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__)
iamtheky Posted July 7, 2016 Author 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 ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__)
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