2011-04-27 14 views
6

में अंतिम कमांड लाइन तर्क प्राप्त करें मुझे विंडोज बैच स्क्रिप्ट में अंतिम तर्क पारित करने की आवश्यकता है, मैं यह कैसे कर सकता हूं?विंडोज बैच फ़ाइल

+0

देखें [यहां] (http://stackoverflow.com/questions/357315/get-list-of -पास-तर्क-इन-विंडोज-बैच-स्क्रिप्ट-बल्ले) –

उत्तर

7

सबसे आसान और शायद सबसे विश्वसनीय तरीका wo के लिए उपयोग की जाने वाली पार्सिंग का उपयोग करने के बजाय for द्वारा कमांड लाइन को फिर से विश्लेषण किया गया है uld केवल cmd के तर्कों के लिए स्वयं पार्सिंग और shift का उपयोग करने के लिए तब तक नहीं रहें जब तक कि वहां और नहीं हैं।

के बाद से इस %1 के उपयोग को नष्ट कर देता है, आदि आप इसे एक सबरूटीन में कर सकते हैं:

@echo off 
call :lastarg %* 
echo Last argument: %LAST_ARG% 
goto :eof 

:lastarg 
    set "LAST_ARG=%~1" 
    shift 
    if not "%~1"=="" goto lastarg 
goto :eof 
8

इस तर्क की गिनती मिल जाएगा:

set count=0 
for %%a in (%*) do set /a count+=1 

वास्तविक अंतिम तर्क के लिए, आप कर सकते हैं

for %%a in (%*) do set last=%%a 

नोट यदि कमांड लाइन असंतुलित उद्धरण है कि इस असफल हो जायेगी - %1 आदि

+1

आपने तर्क गणना के साथ क्यों जवाब दिया? वह नहीं पूछा गया था। – Joey

संबंधित मुद्दे