回答編集履歴
1
回答追記
test
CHANGED
@@ -8,8 +8,6 @@
|
|
8
8
|
start cmd /c "timeout /T 10 /NOBREAK & call B.bat"
|
9
9
|
```
|
10
10
|
|
11
|
-
|
12
|
-
|
13
11
|
> ・A.batの処理は5秒ごと処理を実行
|
14
12
|
> ・B.batの処理はA.batの処理を止めずに10秒ごとに処理を実行
|
15
13
|
だと内容が不明です。
|
@@ -17,4 +15,28 @@
|
|
17
15
|
「10秒ごとに処理を実行」と、お書きのコードの「Aから起動されて10秒待って処理」との関係は?
|
18
16
|
など。
|
19
17
|
|
18
|
+
## 追記
|
19
|
+
`timeout`コマンドだと1秒未満待つことは出来ないですが、他の手段で1秒未満待てばこういう手もありますね。
|
20
|
+
(手元の環境だと`Sleep 200`をcscriptコマンドで起動すると0.3秒くらい待ちます)
|
21
|
+
Aの処理を5秒ごとに実行したいと言う以上、Aの処理が5秒を超えることは死んでもあり得ないのでしょうが、5秒ぎりぎりになると厳しいですね。その場合は、コメントに書いたような方法しか無いでしょう。
|
20
22
|
|
23
|
+
現在時刻の秒の1の位が0ならB.BATを起動して、5で割った余りが0ならAの処理をする。
|
24
|
+
「N秒ごとに」のNが60の約数なら同様に出来ます。
|
25
|
+
```CMD
|
26
|
+
@echo off
|
27
|
+
echo WScript.Sleep 200 > $$$.vbs
|
28
|
+
|
29
|
+
:MAINLOOP
|
30
|
+
set S=%TIME:~7,1%
|
31
|
+
if %S%==0 start B.BAT
|
32
|
+
set /a S5=S %% 5
|
33
|
+
if %S5%==0 call :AAAAA
|
34
|
+
:SAMESECOND
|
35
|
+
cscript $$$.vbs
|
36
|
+
if %S%==%TIME:~7,1% goto SAMESECOND
|
37
|
+
goto MAINLOOP1
|
38
|
+
|
39
|
+
:AAAAA
|
40
|
+
A固有の処理
|
41
|
+
```
|
42
|
+
|