2012-07-27 17 views
9

संपादित करें में कमांड स्ट्रिंग चल रहा है संपादित करें: नीचे दिए गए कोड में कुछ भी गलत नहीं था। त्रुटि कहीं और से आ रही थी।बैच स्क्रिप्टिंग

कमांड चर वह आदेश है जिसे मैं निष्पादित करना चाहता हूं। नाम चर कंप्यूटर नामों की एक सूची खींच रहा है। जब मैं गूंजता हूं! कमांड! यह वह मान देता है जिसका मैं उपयोग करना चाहता हूं। यह सभी मशीनों को हटाने के लिए आवश्यक कमांड को चलाया जाना चाहिए, हालांकि, जब मैं वास्तव में चलाता हूं! कमांड! या% कमांड%, नाम चर जोड़ा नहीं गया है और यह विफल रहता है। क्योंकि यह, पार्स समय में विस्तार किया गया है, इसलिए विस्तार मूल्य पाश को क्रियान्वित करने से पहले आदेश का मूल्य है

d: 
cd "Program Files\admin" 
setlocal EnableDelayedExpansion 
SET string=% 
for /f "tokens=*" %%a in (oldMachines.txt) do (
set name=%%a 
set command=sbadmcl.exe AdminUser:admin -AdminPwd:password -Command:DeleteMachine -Machine:!name! 
REM echo !name! 
REM echo !command! 
REM !command! 
%command% 
) 
pause 

उत्तर

10

%command% काम नहीं करेगा।

मुझे नहीं पता कि क्यों !command! काम नहीं करता है। आम तौर पर आप एक चर में कोड निष्पादित करते समय देरी विस्तार के बजाय सामान्य विस्तार का उपयोग करना चाहते हैं क्योंकि देरी से विस्तार कुछ संचालन को सीमित करता है जो आप कर सकते हैं। सीएमडी पार्सर कैसे काम करता है इसके साथ यह करना है। लेकिन मुझे आपके आदेश में कुछ भी दिखाई नहीं देता है जो देरी के विस्तार में समस्याएं पैदा कर सकता है।

call %%command%%

+0

बाहर कर देता है एक मुद्दा यह कार्यक्रम मैं उपयोग कर रहा हूँ के खिलाफ चल रहा था की कोशिश करो। कोड सही है लेकिन कार्यक्रम इसे अनुमति नहीं दे रहा है। धन्यवाद, धन्यवाद, आपका जवाब उपयोगी था। – spassen

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