2010-10-16 9 views
5

Sto appena iniziando a imparare gli script da riga di comando e ho un compito per la scuola in cui la prima parte è creare un file batch che accetta due interi come parametri. Gli interi verranno successivamente manipolati nell'intera domanda e non cercherò alcun aiuto in tal senso. Ho cercato su Google in molti modi diversi e non riesco a trovare una risposta. Come posso iniziare?Come creare un file batch che accetta due interi come parametri

So che questo è molto semplice per tutti quelli che leggono questo, ma ti sto chiedendo di darmi un po 'di spazio, tutti dobbiamo iniziare da qualche parte.

+0

Quale sistema operativo? – ChrisF

risposta

9

Supponendo MS-DOS, è possibile utilizzare %1, %2, ecc. Per i parametri di input.

@ECHO OFF 

SET /a INT1=%1 
SET /a INT2=%2 

SET /a ANSWER=INT1*INT2 

ECHO %ANSWER% 

PAUSE 

È quindi possibile chiamare questo come:

mybatchfile.bat 2 4 
+2

solo per notare: questo non funzionerà con MS-DOS, perché non c'è 'set/a' in MS-DOS. (anche se va bene con CMD) – Stephan

3

Su Windows, è %1 %2

http://commandwindows.com/batch.htm

esempio:

@echo off 

echo %1 %2 

set /a v = %1 
set /a v2 = %1 + 1 
set /a v3 = %1 * 2 

echo %v% %v2% %v3% 
+0

Sì, molto dispiaciuto, è Windows 7 in cui stiamo facendo questo. Immagino che la mia confusione derivi dall'esempio che ci è stato dato nella nostra lezione, in quanto una variabile è stata assegnata all'interno dello script e abbiamo chiamato il file 'param. bat'. Abbiamo quindi eseguito il file come param.bat4 (o qualunque numero) e il 4 è stato assegnato come variabile. Non riuscivo a capire come diavolo dovevo ottenere due interi in quel modo. Solo confuso, immagino. – mrwienerdog

+0

Quindi, per far assegnare all'utente il valore del parametro, vorrei solo – mrwienerdog

+0

Dannazione, continuo a premere Invio, quindi ho alcuni post, mi spiace. Come posso ottenere che l'utente inserisca il parametro? – mrwienerdog

3

Assumendo questo è Windows, è possibile fare riferimento i parametri nello script come %1 e %2.

+0

Wow, sono impressionato. In altri casi, quando ho cercato Internet per assistenza tecnica (in riferimento al materiale relativo alla scuola), alcuni dei rispondenti sono stati molto scortesi nel rispondere alle domande (essenzialmente chiamando il manifesto stupido). Ragazzi, siete fantastici! Grazie mille per il tuo aiuto, ora posso finire la mia domanda senza problemi. – mrwienerdog

+0

Benvenuto, felice di aiutarti! –

0

Se il requisito della vostra assegnazione non dice specificamente che sicuramente necessario utilizzare batch (cmd.exe), è possibile utilizzare VBScript. Ha un po 'meglio la gestione degli errori, e può fare matematica in virgola mobile, ecc, meglio di quello che può offrire cmd.exe.

On Error Resume Next 
num1= CInt(WScript.Arguments(0)) 
num2= CInt(WScript.Arguments(1)) 
total=num1 + num2 
If Err.Number <> 0 Then 
    WScript.Echo "Description: " & Err.Description 
    Err.Clear 
Else 
    WScript.Echo "Added: " & total 
End If 

esempio

C:\test>cscript //nologo assigment.vbs 1 2 
Added: 3 

C:\test>cscript //nologo assignment.vbs 1 test 
Description: Type mismatch 
+0

Specifica il batch. Anche se, quello che hai scritto sembra davvero bello, e non vedo l'ora di impararlo! – mrwienerdog

Problemi correlati