Windows Scripting: Difference between revisions
From Andreida
Line 25: | Line 25: | ||
3 (called in a function) |
3 (called in a function) |
||
4 |
4 |
||
</pre> |
|||
=== parameters === |
|||
* Parameters to a script are %1 to %9 |
|||
* %0 is the call and should contain the script name |
|||
* %10 does not exist |
|||
* %* "is" all parameters, even if there are 15 |
|||
* if you want to have more than 9 parameters, google for shift or use something like |
|||
<pre> |
|||
FOR %%A IN (%*) DO ( |
|||
echo xxx %%A xxx |
|||
) |
|||
</pre> |
</pre> |
||
Revision as of 17:19, 19 September 2020
directory of current script
change to the directory of the executed script:
chdir /D %~dp0
The /D allows to change drives too.
functions
@echo off echo 1 call :func_1 2 call :func_1 3 echo 4 exit /B :func_1 echo %1 (called in a function) exit /B 0
Output:
>test 1 2 (called in a function) 3 (called in a function) 4
parameters
- Parameters to a script are %1 to %9
- %0 is the call and should contain the script name
- %10 does not exist
- %* "is" all parameters, even if there are 15
- if you want to have more than 9 parameters, google for shift or use something like
FOR %%A IN (%*) DO ( echo xxx %%A xxx )
test for parameters
@echo off if [%1]==[] ( echo Parameter 1 missing! ) else ( echo Paramater 1 found: %1 )
- '[' and ']' around "%1" are just for the case it is empty. You can use anything you want:
if xx%1xx==xxxx (
- you need a space between "[]" and '(' in the if condition
- the "(" must be on the same line as the if
- the ") else (" can not be on different lines