Skrypt wsadowy - tablice

Tablice nie są specjalnie zdefiniowane jako typ w skrypcie wsadowym, ale można je zaimplementować. Podczas implementacji tablic w skrypcie wsadowym należy zwrócić uwagę na następujące rzeczy.

  • Każdy element tablicy należy zdefiniować poleceniem set.
  • Pętla „for” byłaby wymagana do iteracji po wartościach tablicy.

Tworzenie tablicy

Tablica jest tworzona za pomocą następującego polecenia set.

set a[0]=1

Gdzie 0 to indeks tablicy, a 1 to wartość przypisana do pierwszego elementu tablicy.

Innym sposobem implementacji tablic jest zdefiniowanie listy wartości i iteracyjne przeglądanie listy wartości. Poniższy przykład pokazuje, jak można to zaimplementować.

Przykład

@echo off 
set list = 1 2 3 4 
(for %%a in (%list%) do ( 
   echo %%a 
))

Wynik

Powyższe polecenie daje następujący wynik.

1
2
3
4

Dostęp do tablic

Możesz pobrać wartość z tablicy, używając składni indeksu dolnego, przekazując indeks wartości, którą chcesz pobrać, w nawiasach kwadratowych bezpośrednio po nazwie tablicy.

Przykład

@echo off 
set a[0]=1 
echo %a[0]%

W tym przykładzie indeks zaczyna się od 0, co oznacza, że ​​dostęp do pierwszego elementu można uzyskać za pomocą indeksu równego 0, do drugiego elementu można uzyskać dostęp za pomocą indeksu 1 i tak dalej. Sprawdźmy następujący przykład, aby utworzyć, zainicjować i uzyskać dostęp do tablic -

@echo off
set a[0] = 1 
set a[1] = 2 
set a[2] = 3 
echo The first element of the array is %a[0]% 
echo The second element of the array is %a[1]% 
echo The third element of the array is %a[2]%

Powyższe polecenie daje następujący wynik.

The first element of the array is 1 
The second element of the array is 2 
The third element of the array is 3

Modyfikowanie tablicy

Aby dodać element na końcu tablicy, możesz użyć elementu set wraz z ostatnim indeksem elementu tablicy.

Przykład

@echo off 
set a[0] = 1  
set a[1] = 2  
set a[2] = 3 
Rem Adding an element at the end of an array 
Set a[3] = 4 
echo The last element of the array is %a[3]%

Powyższe polecenie daje następujący wynik.

The last element of the array is 4

Możesz zmodyfikować istniejący element tablicy, przypisując nową wartość do danego indeksu, jak pokazano w poniższym przykładzie -

@echo off 
set a[0] = 1 
set a[1] = 2  
set a[2] = 3 
Rem Setting the new value for the second element of the array 
Set a[1] = 5 
echo The new value of the second element of the array is %a[1]%

Powyższe polecenie daje następujący wynik.

The new value of the second element of the array is 5

Iterowanie po tablicy

Iterację po tablicy uzyskuje się za pomocą pętli „for” i przechodzenia przez każdy element tablicy. Poniższy przykład pokazuje prosty sposób, w jaki można zaimplementować tablicę.

@echo off 
setlocal enabledelayedexpansion 
set topic[0] = comments 
set topic[1] = variables 
set topic[2] = Arrays 
set topic[3] = Decision making 
set topic[4] = Time and date 
set topic[5] = Operators 

for /l %%n in (0,1,5) do ( 
   echo !topic[%%n]! 
)

Należy zwrócić uwagę na następujące rzeczy dotyczące powyższego programu -

  • Każdy element tablicy należy szczegółowo zdefiniować za pomocą polecenia set.

  • Pętla „for” z parametrem / L do poruszania się po zakresach jest używana do iteracji po tablicy.

Wynik

Powyższe polecenie daje następujący wynik.

Comments 
variables 
Arrays 
Decision making 
Time and date 
Operators

Długość tablicy

Długość tablicy jest określana przez iterację po liście wartości w tablicy, ponieważ nie ma bezpośredniej funkcji do określenia liczby elementów w tablicy.

@echo off 
set Arr[0] = 1 
set Arr[1] = 2 
set Arr[2] = 3 
set Arr[3] = 4 
set "x = 0" 
:SymLoop 

if defined Arr[%x%] ( 
   call echo %%Arr[%x%]%% 
   set /a "x+=1"
   GOTO :SymLoop 
)
echo "The length of the array is" %x%

Wynik

Dane wyjściowe Powyższe polecenie daje następujące dane wyjściowe.

The length of the array is 4

Tworzenie struktur w szykach

Struktury mogą być również implementowane w plikach wsadowych przy użyciu dodatkowego kodowania do implementacji. Poniższy przykład pokazuje, jak można to osiągnąć.

Przykład

@echo off 
set len = 3 
set obj[0].Name = Joe 
set obj[0].ID = 1 
set obj[1].Name = Mark 
set obj[1].ID = 2 
set obj[2].Name = Mohan 
set obj[2].ID = 3 
set i = 0 
:loop 

if %i% equ %len% goto :eof 
set cur.Name= 
set cur.ID=

for /f "usebackq delims==.tokens=1-3" %%j in (`set obj[%i%]`) do ( 
   set cur.%%k=%%l 
) 
echo Name = %cur.Name% 
echo Value = %cur.ID% 
set /a i = %i%+1 
goto loop

Na temat powyższego kodu należy zwrócić uwagę na następujące kluczowe rzeczy.

  • Każda zmienna zdefiniowana za pomocą polecenia set ma 2 wartości powiązane z każdym indeksem tablicy.

  • Zmienna i jest ustawiona na 0, abyśmy mogli zapętlić strukturę o długości tablicy, która wynosi 3.

  • Zawsze sprawdzamy warunek, czy wartość i jest równa wartości len a jeśli nie, przechodzimy przez kod.

  • Jesteśmy w stanie uzyskać dostęp do każdego elementu struktury za pomocą notacji obj [% i%].

Wynik

Powyższe polecenie daje następujący wynik.

Name = Joe 
Value = 1 
Name = Mark 
Value = 2 
Name = Mohan 
Value = 3