यदि मूल फ़ोल्डर नामों में स्थान हैं, तो बैच स्क्रिप्ट ठीक से काम नहीं करती है


0

मैंने देखा कि फ़ोल्डर नामों में कोई रिक्त स्थान होने पर मेरी बैच स्क्रिप्ट ठीक से काम नहीं करती है:

C: \ ProgramFiles (x86) \ abc \ def \ example.bat → सभी कार्य सही तरीके से किए गए हैं

C: \ Program Files (x86) \ abc \ def \ example.bat → गलत व्यवहार

क्या परिवर्तन होने चाहिए?

@echo off

for %%F in ("%~dp0..\*.wgm") do (
set "file=%%~nxF"
move "%%F" "%cd%" >nul
goto :next
)
:next
if not exist %cd%\output md output
if not exist %cd%\temp md temp

echo File "%file%" was moved from "%~dp0..\" to "%cd%" && move "*.wgm" "%cd%\"

for /d %%i in ("%cd%\") do ( cd "%%i" ) && for %%i in (*.wgm) do tool.exe *.wgm "%%~ni".dat "643054977005802"

move "%cd%\*.wgm" temp\
move "%cd%\*.dat" output\

if exist %~dp0..\*.wgm call example.bat
if not exist %~dp0..\*.wgm goto :last

:last
for /r %%x in (*.dat) do ren "%%x" *.wgm
move "%cd%\temp\*.wgm" %~dp0..\ && rmdir /s /q "%cd%\temp"

exit

क्या आपने पथ को घेरने की कोशिश की है & amp; कॉल करते समय डबल कोट्स में फाइल करें? "C: \ Program Files (x86) \ abc \ def \ example.bat"
jason.kaisersmith

1
आपकी स्क्रिप्ट बहुत जटिल है सिर्फ निरीक्षण से विश्लेषण करने के लिए। आपको अपने प्रश्न में त्रुटि संदेशों को कॉपी करना होगा, और साथ चलना होगा echo on, ताकि यह स्पष्ट किया जा सके कि कौन सी कमांड त्रुटियों को उत्पन्न कर रही हैं। यह भी स्पष्ट नहीं है कि कौन से चर निर्धारित किए जाते हैं ...\example.bat
AFH

चूंकि स्क्रिप्ट में कई कमांड शामिल हैं, इसलिए आपको उन लोगों को इंगित करना चाहिए जिन्हें सही तरीके से निष्पादित नहीं किया गया है, उनके इच्छित व्यवहार की व्याख्या करते हुए और इसे देखे गए व्यवहार से तुलना करते हैं।
simlev

आल थे if exist resp if not exist पंक्तियों का एक रास्ता नहीं है। पहले दो में `% सीडी%` निकालें - वे बहुत कम हैं।
LotPings
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.