• 0

Windows WakOnLAN batch script


Question

I currently have a script to encode files and send them to another machine over the LAN. I've started putting the remote machine to sleep since it isn't being used as much, so I want the batch file to wake the machine if needed.

What I'd like to do is:

1. check to see if the PC is currently on

2. encode the files

3. if PC was already on, send periodic packets to keep it on while the script is running

4. run renamer

5. if machine is off, send a magic packet to wake the machine so they can be copied over

6. if need be, wait for machine to turn on, then check it again

7. copy and move files

That way, the machine won't go to sleep while the script is running only to be woken up again a short time later. Each encoding takes about 40 minutes, and the remote PC sleeps after 1 hour. So, if the machine is currently on, I need a command to keep it alive inserted between each encode.

Here is my current script. It may seem a little weird, but it does what I need. I've trimmed out most of the encoding steps.


set avidemux="D:Programs\avidemux_2.5.6-1_win64\avidemux2_cli.exe"
set videocodec=
set audiocodec=
set curr_dir="D:\New Video"
set destination="D:\Encoded Temp\%%f.avi"

set therenamer="C:\Program Files (x86)\theRenamer\theRenamer.exe"
set renamer_source="D:\Encoded Temp"
set renamer_dest="D:\New TV Episodes"

set copy_dest="D:\Videos"
set move_dest="\\DOWNSTAIRS\Video"

chdir video1
set targetsize=300
for %%f in (*.mp4) do %avidemux% --video-codec %videocodec% --audio-codec %audiocodec% --video-conf 2pass=%targetsize% --force-alt-h264 --load "%%f" --save %destination% --quit
chdir /D %curr_dir%

chdir video2
set targetsize=375
for %%f in (*.mp4) do %avidemux% --video-codec %videocodec% --audio-codec %audiocodec% --video-conf 2pass=%targetsize% --force-alt-h264 --load "%%f" --save %destination% --quit

chdir %renamer_source%
del *.stat

%therenamer% -fetch -ff=%renamer_source% -af=%renamer_dest%

robocopy %renamer_dest% %copy_dest% /S /xa:h
robocopy %renamer_dest% %move_dest% /MOVE /S /xa:h
[/CODE]

Link to comment
https://www.neowin.net/forum/topic/1113959-windows-wakonlan-batch-script/
Share on other sites

8 answers to this question

Recommended Posts

  • 0

I'm not sure what the wol syntax is, but using the utility I mentioned already, you could simply insert the line

WakeMeOnLan.exe /wakeup x.x.x.x[/CODE]

(assuming x.x.x.x is the target's IP address) before you start your copy. I believe that the other checking to see if the machine is currently on, as you stated in your first post, is irrelevant.

  • 0

Anyone know if WoL or ping will keep the target machine awake?

What I'd like it to do is check if the machine is currently awake. If it is, then between each encode, do something to keep it awake and do the copy task at the end. If it isn't, then wait until the end of the script and prompt [y/n] whether or not it should wake the machine and copy the files.

  • 0

Some of the videos I'm encoding are downloaded, and sometimes they download really slow. So sometimes I want to run the script to encoded a few to get a head start, but I don't want to wake the machine and copy until I have all of them encoded.

  • 0

OK. Here's what i have so far. I haven't had a chance to test it. Anyone see any problems with it?


@echo off

set avidemux="D:Programs\avidemux_2.5.6-1_win64\avidemux2_cli.exe"
set videocodec=
set audiocodec=
set curr_dir="D:\New Video"
set destination="D:\Encoded Temp\%%f.avi"

set therenamer="C:\Program Files (x86)\theRenamer\theRenamer.exe"
set renamer_source="D:\Encoded Temp"
set renamer_dest="D:\Temp"
set copy_dest="D:\Video"
set move_dest="\\DOWNSTAIRS\Video"

set wol="D:\Programs\wol.exe"
set machine=Downstairs
set mac=0F0FEAFFFFF

echo.
ping -n 5 %machine%
if errorlevel 1 (
set awake=0
goto encode
)

echo.
echo %machine% is already awake.
set "awake=1"
goto encode

:encode
chdir /D %curr_dir%

chdir Video1
set targetsize=300
for %%f in (*.mp4) do %avidemux% --video-codec %videocodec% --audio-codec %audiocodec% --video-conf 2pass=%targetsize% --force-alt-h264 --load "%%f" --save %destination% --quit
chdir /D %curr_dir%

if awake=1 (
echo Sending WOL packet to %machine% (%mac%)
%wol% %mac%
)

chdir Video2
set targetsize=350
for %%f in (*.mp4) do %avidemux% --video-codec %videocodec% --audio-codec %audiocodec% --video-conf 2pass=%targetsize% --force-alt-h264 --load "%%f" --save %destination% --quit
chdir /D %curr_dir%
if awake=1 (
echo Sending WOL packet to %machine% (%mac%)
%wol% %mac%
)

chdir Video3
set targetsize=400
for %%f in (*.mp4) do %avidemux% --video-codec %videocodec% --audio-codec %audiocodec% --video-conf 2pass=%targetsize% --force-alt-h264 --load "%%f" --save %destination% --quit
chdir /D %curr_dir%

chdir %renamer_source%
del *.stat

if awake=1 (
goto renamer
)

:wake-on-lan
echo.
echo Sending WOL packet to %machine% (%mac%)
%wol% %mac%
wait 20
goto %renamer%

:renamer
%therenamer% -fetch -ff=%renamer_source% -af=%renamer_dest%
robocopy %renamer_dest% %copy_dest% /S /xa:h
robocopy %renamer_dest% %move_dest% /MOVE /S /xa:h
[/CODE]

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Cries in Autodesk...... Or Adobe, or Affinity. Or.......
    • You may not like it but he's right on this. Openoffice and LibreOffice are not there yet for company wide use. For regular day to day use its fine, but can crash for no reason whatsoever. E.g. a Write document with al lot of images embedded. It will crash for no reason whatsoever. Calc is very stable in my daily use. But the main reason its not ready for primetime is the lack of automation like Office has. Or it is frustratingly complicated or non documented.
    • It wasn't "Germany" trying to move away from Windows, it was one state in Germany https://www.neowin.net/news/ge...t-to-linux-and-libreoffice/ I also don't think they "crawled back to Windows". The same state also ditched Teams https://it.slashdot.org/story/...hits-uninstall-on-microsoft
    • Hey folks, I've recently noticed my iPhone (13 Pro) getting insanely hot while playing certain games — especially ones with high graphics like COD Mobile or even during long FaceTime calls. Battery drops fast, the back heats up, and the phone starts lagging a bit too. It honestly reminds me of that GTA San Andreas mission where CJ runs through a burning building with the fire extinguisher — except I don’t have one for my phone 😂 Jokes aside, I’ve: Turned off background app refresh Reduced brightness Closed unnecessary apps Updated to the latest iOS But the issue still pops up during intense tasks. 👉 Anyone else facing this? 👉 Is this normal with newer iPhones or something I should worry about long term? 👉 Could using a MagSafe charger regularly have anything to do with it? Would love to hear your experience or if you’ve got tips to cool things down (besides playing San Andreas. on low graphics haha). Cheers! 
    • It's funny how easy he is to emulate because of such a limited verbal vocabulary.
  • Recent Achievements

    • Explorer
      Case_f went up a rank
      Explorer
    • Conversation Starter
      Jamie Smith earned a badge
      Conversation Starter
    • First Post
      NeoToad777 earned a badge
      First Post
    • Week One Done
      JoeV earned a badge
      Week One Done
    • One Month Later
      VAT Services in UAE earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      575
    2. 2
      ATLien_0
      253
    3. 3
      +Edouard
      161
    4. 4
      +FloatingFatMan
      153
    5. 5
      Michael Scrip
      114
  • Tell a friend

    Love Neowin? Tell a friend!