मैं अपने Windows बैच फ़ाइल के अंदर निम्न स्ट्रिंग है:एक Windows बैच फ़ाइल में एक स्ट्रिंग से पहली और आखिरी चरित्र निकालें
"-String"
स्ट्रिंग भी शुरुआत में और के अंत में twoe उद्धरण चिह्न शामिल स्ट्रिंग, जैसा कि यह ऊपर लिखा गया है।
मैं पहली और आखिरी पात्रों उन्हें हटाना चाहते हैं, जिससे कि मैं निम्न स्ट्रिंग मिलती है:
-String
मैं इस कोशिश की:
set currentParameter="-String"
echo %currentParameter:~1,-1%
इस स्ट्रिंग बाहर प्रिंट के रूप में यह होना चाहिए:
-String
लेकिन जब मैं इस तरह की संपादित स्ट्रिंग को स्टोर करने का प्रयास करता हूं, तो यह विफल रहता है:
set currentParameter="-String"
set currentParameter=%currentParameter:~1,-1%
echo %currentParameter%
कुछ भी मुद्रित नहीं हो जाता है। मुझसे क्या गलती हुई है?
यह वास्तव में अजीब है। जब मैं इस तरह वर्ण निकालने यह काम करता है:
set currentParameter="-String"
set currentParameter=%currentParameter:~1,-1%
echo %currentParameter%
इसे बाहर प्रिंट:
-String
लेकिन वास्तव में मेरे बैच में थोड़ा और अधिक जटिल है और वहाँ यह काम नहीं करता। मैं दिखा देंगे कि मैं क्या प्रोग्राम किया:
@echo off
set string="-String","-String2"
Set count=0
For %%j in (%string%) Do Set /A count+=1
FOR /L %%H IN (1,1,%COUNT%) DO (
echo .
call :myFunc %%H
)
exit /b
:myFunc
FOR /F "tokens=%1 delims=," %%I IN ("%string%") Do (
echo String WITHOUT stripping characters: %%I
set currentParameter=%%I
set currentParameter=%currentParameter:~1,-1%
echo String WITH stripping characters: %currentParameter%
echo .
)
exit /b
:end
और उत्पादन होता है:
.
String WITHOUT stripping characters: "-String"
String WITH stripping characters:
.
.
String WITHOUT stripping characters: "-String2"
String WITH stripping characters: ~1,-1
.
लेकिन क्या मैं चाहता है:
.
String WITHOUT stripping characters: "-String"
String WITH stripping characters: -String
.
.
String WITHOUT stripping characters: "-String2"
String WITH stripping characters: -String2
.
आपका नमूना काम करता है (उम्मीद के रूप में), वहाँ एक और बग होना चाहिए । शायद आपने इसे ब्लॉक के अंदर करने की कोशिश की? – jeb
मुझे निम्न संदेश मिलता है: 'ईसीएचओ आईएसटी ऑउजेस्काल्टेट (OFF)। ~ 1, -1' – Metalhead89
शायद ऐसा इसलिए है क्योंकि यह एक समारोह में है? ': myFunc /एफ" टोकन =% 1 delims =, "%% के लिए मैं में ("% processChain1% ") दो ( \t सेट currentParameter = %% मैं \t सेट currentParameter =% currentParameter: ~ 1 , -1% \t गूंज% currentParameter% \t रेम जावा जार app.jar %% मैं ) बाहर निकलें/b' – Metalhead89