• 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

    • Supply and demand. Competition is a good thing.
    • For the cost of popping Linux on a minipc and attaching it to the back of a monitor, it essentially is a Mac, but 1/10th of the cost. My aunt and uncle were just in town seeing her and they couldn't believe they weren't using Windows. I've ordered them the same setup my mom has and they couldn't be happier. My aunt runs a really old Windows 7 laptop that was upgraded to Windows 10 that is giving out, so a replacement cost of $389 total vs $600 or more and she was sold.
    • BurnAware 18.7 by Razvan Serea Free burning software to create CDs, DVDs, and Blu-ray discs of all types. BurnAware is a full-fledged, easy-to-use burning software which allows users to write all types of files such as digital photos, archives, documents, music and videos to CDs, DVDs and Blu-ray Discs, including BDXL and M-Disc. With BurnAware, you also be able to create boot or multisession discs, high-quality Audio CDs and Video DVDs, make and burn ISO images, copy and backup discs, extract audio tracks, verify and recover data from multisession or unreadable discs. BurnAware is available in three editions - Free, Premium and Professional. Compare and pick edition which is suitable for you. Features Burn files and folders to CD, DVD or Blu-ray Discs. Append or update multisession discs. Burn standard or boot disc images. Burn ISO files to multiple recorders simultaneously. Create boot CDs or DVDs. Create Audio CDs. Create DVD-Video discs. Create MP3 CD / DVD / Blu-ray Discs. Make standard or boot disc images. Copy CD, DVD or Blu-ray Discs to ISO images. Copy from discs to discs. Verify discs byte by byte. Recover files from damaged discs or different sessions. Extract audio tracks from Audio CDs. Erase and format re-writable discs. View detailed disc and drive information. Supports All media types (CD/DVD/Blu-ray Disc) including Double Layer All current hardware interfaces (IDE/SCSI/USB/1394/SATA) including AHCI UDF/ISO9660/Joliet file systems (any combination) On-the-fly writing (no staging to hard drive first) Verification of written files Multisession DVD-RW/DVD+RW Unicode CD-Text (tracks and disc) Compatible with Windows Vista 7, 8, 10, 11 (32-bit or 64-bit) BurnAware 18.7 changelog: Updated translations. Updated disc burning SDK. Improved indirect disc copying (CD <-> DVD). Optimized overall performance on 64-bit systems. Download: BurnAware Free 18.7 | 11.8 MB (Freeware) View: BurnAware Free Website | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Yeah, as a general rule I prefer standard XBox-like controllers that work like usual out-of-the-box. additional software tends to be overkill. p.s. even my 8BitDo Ultimate 2C wired, while I had to tweak something (setup a udev rule) on Linux for it to work 'out-of-the-box' (which is required for Xinput mode to work in kernels prior to 6.12), I can slightly tweak a small amount of additional buttons/features on the controller itself, no software needed.
  • Recent Achievements

    • Apprentice
      Adrian Williams went up a rank
      Apprentice
    • Reacting Well
      BashOrgRu earned a badge
      Reacting Well
    • Collaborator
      CHUNWEI earned a badge
      Collaborator
    • Apprentice
      Cole Multipass went up a rank
      Apprentice
    • Posting Machine
      David Uzondu earned a badge
      Posting Machine
  • Popular Contributors

    1. 1
      +primortal
      535
    2. 2
      ATLien_0
      265
    3. 3
      +Edouard
      193
    4. 4
      +FloatingFatMan
      182
    5. 5
      snowy owl
      135
  • Tell a friend

    Love Neowin? Tell a friend!