diff --git a/MidtermProject1/add_test.py b/MidtermProject1/add_test.py
index 1aab1789c55846e06c59f4cb2bef9fbe71c5851f..31b63bbf66b4cd6e24db64d4a9cf7f10a9d4ebf1 100644
--- a/MidtermProject1/add_test.py
+++ b/MidtermProject1/add_test.py
@@ -19,7 +19,7 @@ mod tests {
 import re
 import sys
 import os.path as path
-file_path = path.join(sys.argv[1], 'src/blockchain/mod.rs')
+file_path = path.join(sys.argv[1], 'src','blockchain','mod.rs')
 print(path.dirname(file_path), end=' ')
 before_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. BEFORE TEST'
 after_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. AFTER TEST'
diff --git a/MidtermProject1/autograder_windows.bat b/MidtermProject1/autograder_windows.bat
new file mode 100644
index 0000000000000000000000000000000000000000..34a045d8144520bbe238abdf8745fd4ed220b53b
--- /dev/null
+++ b/MidtermProject1/autograder_windows.bat
@@ -0,0 +1,6 @@
+@echo off
+set /p netid="Please unzip your code manually in this directory, and put it in a directory named after your netid, (make sure that Cargo.toml and src/ is in your-netid/ece598pv-sp2022-main), and enter your netid:"
+python3 add_test.py %netid%\ece598pv-sp2022-main
+cd %netid%\ece598pv-sp2022-main
+cargo test sp2022autograder02
+pause
\ No newline at end of file
diff --git a/MidtermProject2/add_test.py b/MidtermProject2/add_test.py
index d38fef950357bb1f16a10944bac9b2c726c2d3ed..ddd3b40725d5e4e00292b88cfc5d22aa8c45aa56 100644
--- a/MidtermProject2/add_test.py
+++ b/MidtermProject2/add_test.py
@@ -24,7 +24,7 @@ mod test {
 import re
 import sys
 import os.path as path
-file_path = path.join(sys.argv[1], 'src/miner/mod.rs')
+file_path = path.join(sys.argv[1], 'src','miner','mod.rs')
 print(path.dirname(file_path), end=' ')
 before_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. BEFORE TEST'
 after_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. AFTER TEST'
diff --git a/MidtermProject2/autograder_windows.bat b/MidtermProject2/autograder_windows.bat
new file mode 100644
index 0000000000000000000000000000000000000000..51ed00d6f9f5d4c66b6777d6f80f44c73f043e2e
--- /dev/null
+++ b/MidtermProject2/autograder_windows.bat
@@ -0,0 +1,6 @@
+@echo off
+set /p netid="Please unzip your code manually in this directory, and put it in a directory named after your netid, (make sure that Cargo.toml and src/ is in your-netid/ece598pv-sp2022-main), and enter your netid:"
+python3 add_test.py %netid%\ece598pv-sp2022-main
+cd %netid%\ece598pv-sp2022-main
+cargo test sp2022autograder03
+pause
\ No newline at end of file
diff --git a/MidtermProject3/add_test.py b/MidtermProject3/add_test.py
index c931634e0ea370d5a64f42b47462afa0995d6bd1..a50f911e0d2aa3c38759f247c13acef4272e61f2 100644
--- a/MidtermProject3/add_test.py
+++ b/MidtermProject3/add_test.py
@@ -55,7 +55,7 @@ mod test {
 import re
 import sys
 import os.path as path
-file_path = path.join(sys.argv[1], 'src/network/worker.rs')
+file_path = path.join(sys.argv[1], 'src','network','worker.rs')
 print(path.dirname(file_path), end=' ')
 before_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. BEFORE TEST'
 after_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. AFTER TEST'
diff --git a/MidtermProject3/autograder_windows.bat b/MidtermProject3/autograder_windows.bat
new file mode 100644
index 0000000000000000000000000000000000000000..76103291b5dd5b93b3cede45227eebffe002e472
--- /dev/null
+++ b/MidtermProject3/autograder_windows.bat
@@ -0,0 +1,6 @@
+@echo off
+set /p netid="Please unzip your code manually in this directory, and put it in a directory named after your netid, (make sure that Cargo.toml and src/ is in your-netid/ece598pv-sp2022-main), and enter your netid:"
+python3 add_test.py %netid%\ece598pv-sp2022-main
+cd %netid%\ece598pv-sp2022-main
+cargo test sp2022autograder04
+pause
\ No newline at end of file
diff --git a/Warmup1/README.md b/Warmup1/README.md
index ad4e23f879240e3a9e1f5877c0199517ddfa52d8..87d72fa861502b1a71568c653cb795fcdc70119e 100755
--- a/Warmup1/README.md
+++ b/Warmup1/README.md
@@ -79,7 +79,7 @@ test types::transaction::tests::sign_verify ... ok
 ```
 - To test your code, you are free to write more tests.
 
-## Double check
+## Double check (Unix)
 We provide (incomplete) auto-grader for you to test that your code format fits auto-grader. However, passing this auto-grader doesn't guarantee getting full grades. For this assignment, put your netid.zip file with [autograder.sh](autograder.sh) and [add_test.py](add_test.py) in a new directory, from where run
 ```
 bash autograder.sh
@@ -90,6 +90,10 @@ If you see "Code format wrong" on screen, your code may change the lines that sh
 
 If in _log.txt_ you cannot see correct log, your zip file may have incorrect directories for auto-grader to compile.
 
+## Double check (windows)
+Similar to Unix double checking auto-grader, we provide `autograder_windows.bat`. First, you need to manually unzip your netid.zip file, and put the `ece598pv-sp2022-main` folder inside a folder named after your netid. Make sure that `Cargo.toml` and `src/` is in `your-netid/ece598pv-sp2022-main`. Then double click `autograder_windows.bat`, enter your netid as instructed, and the result will be shown in a cmd window.
+
+You need to install `python3` to run it.
 ## Submission
 Download the zip file of your repo on gitlab. Rename it to your netid as `netid.zip`. Upload the zip file on compass2g. Please check your file size and it should not be very large.
 
diff --git a/Warmup1/add_test.py b/Warmup1/add_test.py
index 193ad33d361117206d0f4d39c551ec4e29eaae60..cb091c293d7333099058bd5a6147f8a5ea6aa445 100644
--- a/Warmup1/add_test.py
+++ b/Warmup1/add_test.py
@@ -43,7 +43,7 @@ mod tests {
 import re
 import sys
 import os.path as path
-file_path = path.join(sys.argv[1], 'src/types/address.rs')
+file_path = path.join(sys.argv[1], 'src','types','address.rs')
 print(path.dirname(file_path), end=' ')
 before_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. BEFORE TEST'
 after_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. AFTER TEST'
@@ -66,7 +66,7 @@ if change_before and change_after:
 else:
     print("\033[91m {}\033[00m".format("Code format wrong"))
 
-file_path = path.join(sys.argv[1], 'src/types/transaction.rs')
+file_path = path.join(sys.argv[1], 'src','types','transaction.rs')
 print(path.dirname(file_path), end=' ')
 before_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. BEFORE TEST'
 after_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. AFTER TEST'
diff --git a/Warmup1/autograder_windows.bat b/Warmup1/autograder_windows.bat
new file mode 100644
index 0000000000000000000000000000000000000000..29e77de6e2073e6e7663b21a493017f7257b2691
--- /dev/null
+++ b/Warmup1/autograder_windows.bat
@@ -0,0 +1,6 @@
+@echo off
+set /p netid="Please unzip your code manually in this directory, and put it in a directory named after your netid, (make sure that Cargo.toml and src/ is in your-netid/ece598pv-sp2022-main), and enter your netid:"
+python3 add_test.py %netid%\ece598pv-sp2022-main
+cd %netid%\ece598pv-sp2022-main
+cargo test sp2022autograder00
+pause
\ No newline at end of file
diff --git a/Warmup2/README.md b/Warmup2/README.md
index 2450d7a00f8a53c186c3c3595c530e7a6438ae5f..3a0e5a92ecb6ab8d7da319f5d88e0c0272de4c87 100755
--- a/Warmup2/README.md
+++ b/Warmup2/README.md
@@ -47,3 +47,5 @@ We provide (incomplete) auto-grader for you to test that your code format fits a
 bash autograder.sh
 ```
 And you can open the output file _log.txt_, and see whether the auto-grader's tests are passed. You need to have `bash`, `unzip`, and `python3` to run this double check.
+## Double check (windows)
+Same as warmup 1.
\ No newline at end of file
diff --git a/Warmup2/add_test.py b/Warmup2/add_test.py
index dc56b3709f4ec94b89408f6fbc4ca2c78669eafa..26916f402500426a6b3996029ceeb716edbf7d3c 100644
--- a/Warmup2/add_test.py
+++ b/Warmup2/add_test.py
@@ -53,7 +53,7 @@ mod tests {
 import re
 import sys
 import os.path as path
-file_path = path.join(sys.argv[1], 'src/types/merkle.rs')
+file_path = path.join(sys.argv[1], 'src','types','merkle.rs')
 print(path.dirname(file_path), end=' ')
 before_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. BEFORE TEST'
 after_pat = r'// DO NOT CHANGE THIS COMMENT, IT IS FOR AUTOGRADER. AFTER TEST'
diff --git a/Warmup2/autograder_windows.bat b/Warmup2/autograder_windows.bat
new file mode 100644
index 0000000000000000000000000000000000000000..8bac484642a92072f81c2f40f709fcfae17c5a40
--- /dev/null
+++ b/Warmup2/autograder_windows.bat
@@ -0,0 +1,6 @@
+@echo off
+set /p netid="Please unzip your code manually in this directory, and put it in a directory named after your netid, (make sure that Cargo.toml and src/ is in your-netid/ece598pv-sp2022-main), and enter your netid:"
+python3 add_test.py %netid%\ece598pv-sp2022-main
+cd %netid%\ece598pv-sp2022-main
+cargo test sp2022autograder01
+pause
\ No newline at end of file