出於有趣的原因,我編寫了一個批處理文件,輸入100個隨機輸入的大寫/小寫字母,無論我單擊它。由於這個過程非常緩慢,我決定從命令行啓動它,使用簡單的for循環在更短的時間內獲得更多字符: for /L %m in (1,1,3) do (start bat.bat)
在文件所在的文件夾中啓動shell。並行運行相同批處理文件的行爲
Beeing好奇,如果我真的有300個字符我去this website,實時顯示書面字符,並得到一個有趣的觀察:我只得到293個字母(+ - 5左右),而不是預期的300個。我認爲這是因爲並行運行的過程。你甚至可以看到寫作是以3個字符爲單位開始的,然後突然丟失了一兩個字符,這在整個劇本持續時間內都會持續。
現在的問題是:同一批處理文件的並行運行是否會影響其他進程?
下面是該文件的代碼(是的,我知道這是可能做到的方式更短,更高效):
@if (@CodeSection == @Batch) @then
@echo off
Setlocal EnableDelayedExpansion
timeout /t 3
set SendKeys=CScript //nologo //E:JScript "%~f0"
for /L %%G in (1,1,100) do (
set /a grkl=!random! %%2
if "x!grkl!"=="x0" (
!SendKeys! "z"
) ELSE (
!SendKeys! "Z"
)
)
exit
@end
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));