Saturday, April 16, 2016

Basics of Cmd/Batch file

@echo off color 0F  2E start http://www.cnn.com start 99.txt

set /p input=
if %input%==1 (  REM must be if (    ) else (
goto L1
) else  (
goto L99
)
:L1 LEnd set /p input=enter somthing || set input=nothing REM prompt
echo. > %filename%.%extension%  REM =touch in bash but 1 empty line with dot
ping www.cnn.com -n 5 >nul or 2>nul :: n=count nul not null 2=error

for %%i in (1 2 3) do (
REM % escape % to show 1% 2% 3% vs %%i loop var
echo %%i%%  
)

setlocal enabledelayedexpansion  REM ! =% but delayed
set v=test
REM =test when parse =90 when exec so show 90 test
set v=90 & echo !v! %v% ^^!  REM escape ! by ^^

for /r %%i in ( * ) do ( for /d REM rooted =file d=dir for /f %%i in ('dir /b') do (
:main setlocal   endlocal  dir /b /a:D /o-D REM bare folder /a:-D not folder sort D=datetime -D=desc

%CD% %~dp0 %~dp1 REM currDir param 0=1.cmd 1,2 dir only so c:\%~fs0 REM full path filename
echo %CD% pushD c:\1 echo %CD% PopD REM chg dir chg back %~n0 %~x0 REM filename ext
for /f %%i in ('dir /b') do (
echo %%~di  %%~pi %%i  REM show drive letter working dir and filename
)

for /f "Tokens=1,3" %%g in ('dir') do (echo %%h) REM %%g %%H %%i with tokens=
for /f "tokens=* delimis=," in (1.txt) .. REM similar to bash cut

:: function is label and pass in var and modify var byref %~1= param
:function1
echo f1 %~1 set %~1=9
call :function1 ro_val set v=-1 call :function1 v :: show 9

Array
set a[0]=A
set a[1]=B
set a[2]=C

set i=0
:loop
if %i% equ 3 goto :eof
:: usebackq=alternate quote, back quote ` =command processing
for /f "usebackq delims== tokens=2" %%j in (`set a[%i%]`) do (
 echo %%j 
)
set /a i=%i%+1


No comments:

Post a Comment