Windows batch file
#Echo off
@ECHO OFF
echo string to generate the output
#create a blank line
echo.
#list a directory files and then to execute.
here it is a batch file to list all *.js file in a folder, and then to compress it to another folder.
@echo off cls set input_folder=%1 set compress_folder=%2 FOR %%i IN (%input_folder%\*.js) DO cscript ESC.wsf -l 3 -ow %compress_folder%\%%~nxi %%i
ESC.wsf is the tool to compress the javascript.
usage: bat jsfolder compressfolder
#get the current path
%~dp0
More..
In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:
%~I - expands %I removing any surrounding quotes (") %~fI - expands %I to a fully qualified path name %~dI - expands %I to a drive letter only %~pI - expands %I to a path only %~nI - expands %I to a file name only %~xI - expands %I to a file extension only %~sI - expanded path contains short names only %~aI - expands %I to file attributes of file %~tI - expands %I to date/time of file %~zI - expands %I to size of file %~$PATH:I - searches the directories listed in the PATH environment variable and expands %I to the fully qualified name of the first one found. If the environment variable name is not defined or the file is not found by the search, then this modifier expands to the empty string
The modifiers can be combined to get compound results:
%~dpI - expands %I to a drive letter and path only %~nxI - expands %I to a file name and extension only %~fsI - expands %I to a full path name with short names only %~dp$PATH:I - searches the directories listed in the PATH environment variable for %I and expands to the drive letter and path of the first one found. %~ftzaI - expands %I to a DIR like output line
In the above examples %I and PATH can be replaced by other valid values. The %~ syntax is terminated by a valid FOR variable name. Picking upper case variable names like %I makes it more readable and avoids confusion with the modifiers, which are not case sensitive.
#using variable
#write a command in multi-lines ^
#echo special char
echo ^<your@email^>
#create a file
echo string >a.txt
#create multiple lines to a file
echo off
(
echo Windows Registry Editor Version 5.00
echo.
echo [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\IAR Systems\Embedded Workbench\Lic\ARM\01]
set str="%cd%\Licenses\Embedded Workbench\ARM\01\License.ini"
echo "lservrc"="%str%"
)> "li.reg"
#replace string
%string:SEARCH=REPLACE%
set str=%cd%\Licenses\Embedded Workbench\ARM\01\License.ini
echo %str%
set str=%str:\=\\%
#To enable space in path
Using "command" in bat file: "C:\Program Files (x86)\IAR Systems\Embedded Workbench 5.4\common\bin\iarbuild.exe"
#bat file is not recognized as an internal or external command
To restart a new command window to fix it.
#Commen
REM your comment here
#Power controlling in Windows
powercfg.exe /h off
powercfg.exe -change -monitor-timeout-ac 0
powercfg.exe -change -monitor-timeout-dc 0
powercfg.exe -change -disk-timeout-ac 0
powercfg.exe -change -disk-timeout-dc 0
powercfg.exe -change -standby-timeout-ac 0
powercfg.exe -change -standby-timeout-dc 0
powercfg.exe -change -hibernate-timeout-ac 0
powercfg.exe -change -hibernate-timeout-dc 0
Map network driver
@echo off
net use w: \\10.54.143.168\ /user:name 1
@echo on
#set
set displays the current environment variable settings
#path
path displays the environment path
#set path
setx path "%path%;yourpathhere"
another command is
set PATH="%path%;yourpathhere/" (it works in my system)
#if else with paramter checking
IF NOT "%1" == "clean" (
"ninja.exe" -v
) ELSE (
"ninja.exe" -t clean
)
note that, the ) ELSE ( must be one line in my test.
#Redirect "all" output to a single file:
genmake.bat >1.txt 2>&1
https://www.robvanderwoude.com/battech_redirection.php
#check a folder or file exist
IF EXIST debug (
)
IF NOT EXIST debug (
)
#compare string parameter
if "%~1"=="" (
GOTO:EOF
)
if NOT Item1 == Item2 (
)
#Variable
set dlib="C:\\Program Files (x86)\\IAR Systems\\Embedded Workbench 5.4\\arm\\INC\\DLib_Config_Normal.h"
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 5.4\arm\bin\iccarm.exe" C:\cmakeExample\driver\74HC574.c -o C:\cmakeExample\Release\Obj\74HC574_fullpath.o --dlib_config %dlib% --no_unroll --no_inline --no_tbaa --no_scheduling --endian=little --cpu=Cortex-M3 -e --fpu=None -I C:\cmakeExample\STMLib\CMSIS\ -I C:\cmakeExample\STMLib\inc\ -I C:\cmakeExample\STMUSB\inc\ -I C:\cmakeExample\application\inputs\inc\ -I %abc% -Om
note, using "\\" to pass the parameter with space.
#Different
%~1 - expands %1 removing any surrounding quotes (")
%~f1 - expands %1 to a fully qualified path name
%~d1 - expands %1 to a drive letter only
%~p1 - expands %1 to a path only
%~n1 - expands %1 to a file name only
%~x1 - expands %1 to a file extension only
%~s1 - expanded path contains short names only
%~a1 - expands %1 to file attributes
%~t1 - expands %1 to date/time of file
%~z1 - expands %1 to size of file
%~$PATH:1 - searches the directories listed in the PATH
environment variable and expands %1 to the fully
qualified name of the first one found. If the
environment variable name is not defined or the
file is not found by the search, then this
modifier expands to the empty string