przeróbka skryptu bash na bat

Odpowiedz Nowy wątek
2013-12-16 22:05

Rejestracja: 6 lat temu

Ostatnio: 6 lat temu

0

Witam, potrzebuje przerobić oraz uprościć skrypt shell, tak żeby działał w Windowsie...

Ma on robić następującą rzecz;

  1. po odpaleniu użytkownik podaje 4 cyfrowy numer
  2. na bazie tego numeru skrypt ma ustawić IP komputera, zakładając że zmieniają się tylko dwa środkowe oktety

Np. 5.a.b.103 zmiana się tylko a oraz b w zależności od numeru sklepu

O ile jestem w stanie napisać coś takiego jako skrypt bat to jakoś nie kapuje jak to działa w bashu, jak by ktoś wytłumaczył mi skąd są brane te oktety to chyba bym dał radę.

Kod oryginalny poniżej;

#!/bin/bash
SKLEPSERVICE=/root/sklepService
DISTRO=$([[ -f /etc/distro ]] && cat /etc/distro || echo "NPSP")
IM="`myfullname`" # <-ten skrypt (cala scizka)
BASEIM="`mybasename`" # <-sama nazwa skryptu
LF="${IM}.log" # <-logfile
SZER=`tput cols`; SZER=`expr ${SZER} - 9`
POSTEP="postep -p 20 -c - -w ${SZER}"
diatmp="`mktemp`"

. $SKLEPSERVICE/modules/stdlib

usage() {
    echo -e "
    ${k_msg}`mybasename`${k0} - skrypt konfigurujacy karty sieciowe dla sklepow 
    Wywolanie:
    `mybasename` [--version|-v] [--help|-h]
    gdzie
    --version|-v\t- informacja o wersji (ze zmiennej \"version\"),
    --help|-h\t- ta pomoc.
    "
}

#------------------Pobieranie numery sklepu----------------------
case $1 in
      --help|-h)     usage; exit ;;
      --version|-v)  view_version; exit ;;
esac
diainputc "${BASEIM}" "${cn}Wprowadz numer sklepu np:0001:" 2>"${diatmp}"
if [ $? != 0 ] ; then
    write_log "Program zamkniety na zyczenie uzytkownika."
    finish 250
fi
NR=$(2<${diatmp})
while ! [[ "$NR" =~ ^[0-9][0-9][0-9][0-9]$ ]]; do
    echoErr "Numer sklepu musi sie skladac z dokladnie czterech cyfr!"
    sleep 5
    diainputc "${BASEIM}" "${cn}Wprowadz numer sklepu np:0001:" 2>"${diatmp}"
    if [ $? != 0 ] ; then
        write_log "Program zamkniety na zyczenie uzytkownika."
        finish 250
    fi
    NR=$(2<${diatmp})
done

SHOP_NO="$NR"

SHOP_TYPE="sklep"
case ${SHOP_NO:0:1} in
    0|1|2|3)SHOP_TYPE="typ1";;
    7)SHOP_TYPE="typ2";;
    8)SHOP_TYPE="typ3";;
    *)error 3 "Nieobslugiwany rodzaj sklepu!";;
esac

set_network $SHOP_NO

write_log "Finishing script!"

echo -e "\033[1;32m"
echo -e "\n\t**Koncze dzialanie**"
echo -e "\033[0m"
edytowany 2x, ostatnio: hauleth, 2013-12-17 18:29

Pozostało 580 znaków

2013-12-17 18:32
Moderator

Rejestracja: 12 lat temu

Ostatnio: 38 minut temu

0

Raczej niemożliwe będzie przerobienie tego skryptu bez treści pliku /root/sklepService/modules/stdlib. Wydaje mi się też, że "przerobienie" nie będzie absolutnie możliwe. Musisz zrozumieć jak działa ten skrypt i napisać nowy już w Batchu. Ewentualnie możesz spróbować przerobić go na PowerShell.


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0