DOMANDA come fare su MacOS queste azioni che si fanno su Windows

Peri

Nuovo Utente
82
3
Salve gente,
Recentemente chiesi in questo forum come scrivere un particlare file batch per Windows e con un po' di dura ricerca online ho tirato fuori una roba discreta, eccola qui:
Codice:
    @echo off
    cd DATA
    color F
    echo ###### programma di reading ######
    echo attenzione: questo programma potrebbe sovraccaricare il processore
    echo premere un tasto per avviare comunque
    pause>nul
    ren *.pbm *.txt
    FOR %%i IN (*.txt) DO (
        cd ../OUT
        color A
        if not exist %%i (
            color C
            echo %%i in elaborazione...
            cd ..
            start /B READING.exe %%i
            cd DATA
        ) else (
            cd../DATA )
            echo %%i elaborato #
        )
    )
    color F
    echo chiamate terminate, in background ci saranno dei processi attivi
    echo premere un tasto per richiedere la chiusura del programma
    pause>nul
    cls
    echo il programma di reading terminera' quando questa finestra sara' chiusa
    EXIT
Questo è il file di testo che poi ho salvato come RunApplication.bat
Questo file è messo in una cartella assieme a un eseguibile (chiamato READING.exe) e 2 altre cartelle DATA e OUT
Online ho appreso che non c'è molta differenza, i for rimangono for, echo rimane echo, gli indirizzi cambiano la barra / in \
Ma alcune cose non le trovo proprio. Tralasciando color, che vabbè... è simpatico ma non necessario, come traduco pause? e start /B ? che file bisogna creare?
Grazie mille!

PS: se consocete un link che mi può aiutare a capire come si fa senza avere un Mac su cui provare sarebbe fantastico.
Online (probabilmente sono scemo io) non ho trovato nulla purtroppo :(
 
Ultima modifica:

pabloski

Utente Èlite
2,868
916
Online ho appreso che non c'è molta differenza, i for rimangono for, echo rimane echo, gli indirizzi cambiano la barra / in \

Hai appreso male. Quello che probabilmente hai letto è che il linguaggio C è multipiattaforma, cioè puoi compilare un programma C per qualsiasi piattaforma supportata. Ed è vero.

Ma i bat esistono solo sotto Windows. MacOS non supporta quel tipo di linguaggio. MacOS usava bash come shell di default e le ultimissime versioni usano zsh. Ed è su questi che devi puntare. Morale della favola, devi creare uno script apposito per macOS.

La storia delle barre è vera, in quanto Windows ha sempre usato \ come separatore di path, mentre Unix ( e quindi macOS, Linux, ecc... ) usano /.

Il programma in C dovrebbe andare se usa solo le funzioni standard della libc e non usa nessuna API specifica di Windows.

Il consiglio che ti dò è di scrivere uno script bash ( perchè tanto comunque è installata in macOS ) così potrai usarlo pure su Linux.


Le differenze tra Bash e Zsh sono minuscole a livello di programmazione, per cui per ora non fissarti su Zsh e vai su Bash.

p.s. avresti potuto tagliare la testa al toro usando Powershell ( come ti avevo suggerito nell'altro post ) invece dei batch. E siccome Powershell gira pure sugli Unix, ti sarebbe bastato installarla su macOS e via.
 
  • Mi piace
Reazioni: Andretti60

Andretti60

Utente Èlite
6,440
5,091
p.s. avresti potuto tagliare la testa al toro usando Powershell ( come ti avevo suggerito nell'altro post ) invece dei batch. E siccome Powershell gira pure sugli Unix, ti sarebbe bastato installarla su macOS e via.
condivido, io aggiungerei pure Python, se uno ha voglia di imparare un linguaggio di scripting. Ora come ora, PowerShell e Python sono quelli che tirano alla grande, anche negli ambienti di lavoro.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!