Googleアカウントなどでログイン
My Apletts
Create
if then:Amazon Alexa
Choose a trigger:Say a specific phrase
What phrase?:パソコン起動
Create trigger
Then That:Add
Choose a service:OneDrive
Choose an action:Create text file
Connect service:Connect
Microsoftアカウントでサインインする
Create text file
Filename:computerAction
OneDrive folder path:Amazon Alexa/
Contenet:Wakeup
Create action
Finish
Create
if then:Amazon Alexa
Choose a trigger:Say a specific phrase
What phrase?:シャットダウン
Create trigger
Then That:Add
Choose a service:OneDrive
Choose an action:Create text file
Connect service:Connect
Create text file
Filename:computerAction
OneDrive folder path:Amazon Alexa/
Contenet:Shutdown
Create action
Finish
ちなみに、アプレットの削除はHelpから”Can I delete an Applet”を選ぶと行えるらしい。
@echo off
echo %DATE%-%TIME: =0% : Excecuting ... %0 %*
setlocal enabledelayedexpansion
cd /D %~dp0
rem 画面制御のエスケープシーケンスを環境変数に作成する
call SetEscVar.bat
set ALEXA=%OneDrive%\Amazon Alexa
set COMPUTER_ACTION=%ALEXA%\%~n0
echo COMPUTER_ACTION=%COMPUTER_ACTION%
set /a WAIT=10
set WAITING=Waiting...
set /a MSG_CNT=0
:CHAR_COUNT
call set w=%%WAITING:~%MSG_CNT%,1%%
if not "%w%" == "" (
set /a MSG_CNT+=1
goto :CHAR_COUNT
)
@echo|set /p=%ESC_BLINK%
set /a COUNT=0
:LOOP
if exist "%COMPUTER_ACTION%" (
for /f "usebackq delims=" %%f in ("%COMPUTER_ACTION%") do (
echo.
@echo|set /p=%ESC_LINEUP%
if exist "%ALEXA%\%%f.bat" (
@echo|set /p=%DATE%-%TIME: =0% : start %%f.bat
start %%f.bat
)
)
del "%COMPUTER_ACTION%"
set /a COUNT=0
timeout /T %WAIT% > nul
goto :LOOP
)
set /a MSG_POS=%COUNT% %% (%MSG_CNT% + 1) - 1
if %MSG_POS% equ -1 (
echo.
@echo|set /p=%ESC_LINEUP%
@echo|set /p=%DATE%-%TIME: =0% :
) else (
@echo|call set /p=%%WAITING:~%MSG_POS%,1%%
)
set /a COUNT+=1
timeout /T %WAIT% > nul
goto :LOOP
endlocal
exit 0
SetEscVar.bat 画面制御用のエスケープシーケンスを環境変数に作成する
@echo off
:TEMP_NAME
set ESC_FILE=%TEMP%\%~n0_%RANDOM%
set ESC_HEX_FILE=%ESC_FILE%_hex.tmp
set ESC_BIN_FILE=%ESC_FILE%_bin.tmp
if exist %ESC_HEX_FILE% goto :TEMP_NAME
if exist %ESC_BIN_FILE% goto :TEMP_NAME
echo 1B 5B>%ESC_HEX_FILE%
certutil.exe -decodehex %ESC_HEX_FILE% %ESC_BIN_FILE% >NUL 2>&1
set /P ESC=<%ESC_BIN_FILE%
del %ESC_HEX_FILE% >NUL 2>&1
del %ESC_BIN_FILE% >NUL 2>&1
rem The code to go to first column and n lines up is ESC[nF
rem The code to delete to the end of the line is ESC[0J
set ESC_LINEUP=%ESC%1F%ESC%0J
set ESC_LINETOP=%ESC%999D
set ESC_CLRRIGHT=%ESC%0K
set ESC_CLRLEFT=%ESC%1K
set ESC_CLRLINE=%ESC%2L
set ESC_NORMAL=%ESC%39m
set ESC_BLINK=%ESC%5m
exit /b 0
@echo off
echo.
echo %DATE%-%TIME: =0% : Excecuting ... %0 %*
setlocal enabledelayedexpansion
set PC1=192.168.0.11,XX:XX:XX:XX:XX:XX
set PC2=192.168.0.12,XX:XX:XX:XX:XX:YY
set PC3=192.168.0.13,XX:XX:XX:XX:XX:ZZ
set PCs=192.168.0.14,%PC1% %PC2% %PC3%
rem ping.exe で応答しないもののみマジックパケットを送出する
for %%p in (%PCs%) do (
for /f "tokens=1,2 delims=," %%q in ("%%~p") do (
echo ping.exe %%q
set WAKE=
for /f "usebackq skip=2 tokens=1,2" %%i in (`ping -n 1 %%q`) do (
if "%%j" == "からの応答:" if not "%%i" == "%%q" set WAKE=1
if "%%i" == "要求がタイムアウトしました。" set WAKE=1
)
if "!WAKE!" == "1" (
PowerShell.exe "$macAddr=[byte[]]("""%%r""".split(""":""") | ForEach-Object{[Convert]::ToInt32($_, 16)}); $magicPacket=([byte[]](@(0xFF)*6)) + $macAddr * 16; $udpClient=new-object System.Net.Sockets.UdpClient; $WakeUpTarget=[System.Net.IPAddress]::Broadcast; $udpClient.Connect($WakeUpTarget, 9); $udpClient.Send($magicPacket, $magicPacket.Length) | out-null; $udpClient.Close();"
echo %%qを起動しました。
)
)
)
)
@rem for %%p in (%PCs%) do C:\Winapp\WinWol_v303\WinWol.exe /C /H %%p
endlocal
timeout /T 60
exit 0