Tool Weep's Useful Batch Scripts

Weep

Godspeed to the sound of the pounding
Reaction score
400
"W.U.B.S." <3
by Weep
Version 1.0.1​

-- Index --
  1. Play a map regardless of file path
  2. Load a map even when the editor is running
  3. Process a map with JassHelper

-- General Information --
DOS batch files, or .bat files, are sequences of command line operations saved into a script file. Here are a few simple but useful/convenient ones I've made to assist WC3 mapping, tested in Windows XP.

If you want to give them custom icons, you have to make a shortcut to them and then right click > Properties on the shortcut. You can change the shortcut's icon, but not each individual .bat's icon.

-- How To Implement --
  1. Create a new text file, eg. in Notepad.
  2. Paste in the relevant code.
  3. Save the file with a .bat extension to the location specified at the top of the code.
  4. Run the file in Windows, and/or open a map file with the .bat, pretending it is a .exe.

-- Misc. Notes --
No warranty express or implied is available for this code. :p Not responsible for any damages, etc. Credit to Starcraftfreak for this list of WC3 parameters.

Play a map regardless of file path
-- What It Does --
WC3 will refuse to load a map that's located at too long a file path - its name might be too long, or it might be in a folder with too long a name, or it might be nested in too many folders. Using this file, any map can be loaded into WC3 without your having to move it first. Also, just opening the .bat on its own will launch WC3, so you can use it in place of any shortcuts to the Warcraft 3 .exe.

-- How It Works --
The script copies any map it opens to a pre-determined name in your temporary file directory, then commands WC3 to load that copy at the new location.

-- Code --
Code:
::Save this .bat file in the same directory as the war3.exe
::The script uses its own location to find that .exe

@echo off

set WarcraftPath=%~dp0

if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
start "" "%WarcraftPath%\Frozen Throne.exe"
EXIT
)
)

set TempFile=%TEMP%\TempMap%~x1
copy %1 "%TempFile%"

start "" "%WarcraftPath%\war3.exe" -loadfile "%TempFile%"
EXIT

-- Code (for WC3 windowed mode) --
Code:
::Save this .bat file in the same directory as the war3.exe
::The script uses its own location to find that .exe

@echo off

set WarcraftPath=%~dp0

if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
start "" "%WarcraftPath%\Frozen Throne.exe" -window
EXIT
)
)

set TempFile=%TEMP%\TempMap%~x1
copy %1 "%TempFile%"

start "" "%WarcraftPath%\war3.exe" -loadfile "%TempFile%" -window
EXIT

Load a map even when the editor is running
-- What It Does --
When opening a map file from Explorer while the World Editor is already running, it will give an error since it will try to open a new instance of the World Editor, which you cannot do. (Why it has this behavior, I don't know. It doesn't do that in the Mac version...) Opening a map with this file will load it with the World Editor regardless of whether the editor is already running or not. Also, just opening the .bat on its own will launch the editor, so you can use it in place of any shortcuts to the World Editor.

-- How It Works --
The script issues the World Editor a command to load the map.

-- Code --
Code:
::Save this .bat file in the same directory as the worldedit.exe
::The script uses its own location to find that .exe

@echo off

set WarcraftPath=%~dp0

if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
start "" "%WarcraftPath%\worldedit.exe"
EXIT
)
)

start "" "%WarcraftPath%\worldedit.exe" -loadfile "%~f1"
EXIT

Process a map with JassHelper
-- What It Does --
Aside from working with the NewGen Pack, JassHelper is a command-line operable program. For those who'd prefer to work independently of JNGP (eg. for future-proofing), this .bat will issue JassHelper the proper commands to process a map.

-- How It Works --
The script copies any map it opens and adds -JHH to the file name (this allows you to process a map using !import commands multiple times in a row without re-saving from the World Editor), then commands JassHelper to process the map.

-- Code --
Code:
::Save this .bat file in the same directory as the jasshelper.exe
::Also copy the Blizzard.j and common.j files into that directory
::The script uses its own location to find those files

@echo off
if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
EXIT
)
)

set JassHelperPath=%~dp0

set TempFile=%~dpn1-JHH%~x1
copy %1 "%TempFile%"

pushd %~dp1

start "" "%JassHelperPath%\jasshelper.exe" "%JassHelperPath%\common.j" "%JassHelperPath%\Blizzard.j" "%TempFile%"
EXIT

-- Code (to process in debug mode) --
Code:
::Save this .bat file in the same directory as the jasshelper.exe
::Also copy the Blizzard.j and common.j files into that directory
::The script uses its own location to find those files

@echo off
if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
EXIT
)
)

set JassHelperPath=%~dp0

set TempFile=%~dpn1-JHH%~x1
copy %1 "%TempFile%"

pushd %~dp1

start "" "%JassHelperPath%\jasshelper.exe" "--debug" "%JassHelperPath%\common.j" "%JassHelperPath%\Blizzard.j" "%TempFile%"
EXIT
 

Attachments

  • Weep's Useful Batch Scripts.zip
    2 KB · Views: 412

Weep

Godspeed to the sound of the pounding
Reaction score
400
He sees what I did there. :p
I like convenience. <3
 

Samael88

Evil always finds a way
Reaction score
181
This exact same thing works with shortcuts as well, why complicate things with .bat files:nuts:

just add this:
-loadfile "insert destination and map name here"
to your shortcut and it does the exact same thing.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
This exact same thing works with shortcuts as well, why complicate things with .bat files:nuts:
I don't believe you can set specific shortcuts to be the default "app" for double-clicking a file, nor have it appear in the "Open With..." menu. You can with .bat files.
 

Samael88

Evil always finds a way
Reaction score
181
I did not really understand what you meant with the "open with..." part, but I tried making shortcuts for specific maps with both the war3.exe and worldedit.exe and it worked just fine, I can not try jasshelper though since I do not use it.
 

BlackRose

Forum User
Reaction score
239
  • Play a map regardless of file path
    • Window Yes
    • Fullscreen Yes
  • Load a map even when the editor is running Yes
  • Process a map with JassHelper No
    jasshelper.exe - System Error
    The program can't start because bin\SFmpq.dll is missing from your computer. Try reinstalling the program to fix this problem.
    :eek:

Idk. Looks like it works on 7, and that JassHelper problem is mine 0.o
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
Thanks! :)


The program can't start because bin\SFmpq.dll is missing from your computer. Try reinstalling the program to fix this problem.
Yes, well, you have to copy SFmpq.dll from the NewGen download into a folder named "bin" placed alongside the jasshelper.exe - I'm not sure whether that note falls into the scope of these scripts' documentation, or if it's general JassHelper info.
 

HeX.16

Isn't Trollin You Right Now
Reaction score
131
Wow, i love the first one. (Play a map regardless of file path)
Useful very. Only one i have installed but it works on Win7
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top