मेरे बैच फ़ाइल केवल 1 फ़ाइल खोलें, यहां तक ​​कि मुझे अपने पथ में अधिक फ़ाइल मिली


-3

क्या आप मेरे कोड के साथ मेरी मदद कर सकते हैं यह केवल मेरे फ़ोल्डर में 1 फ़ाइल खोलता है लेकिन कैसे? उस फ़ोल्डर में 8 फ़ाइल हैं .. कुछ एक मुझे मदद कर सकते हैं बैच स्क्रीप्टिंग में नए im धन्यवाद

@echo off
setlocal enabledelayedexpansion

:: Extract date fields - language dependent
for /f "tokens=1-4 delims=/-. " %%i in ('date /t') do (
        set v1=%%i& set v2=%%j& set v3=%%k
        if "%%i:~0,1%%" gtr "9" (set v1=%%j& set v2=%%k& set v3=%%l)

        for /f "skip=1 tokens=2-4 delims=(-)" %%m in ('echo.^|date') do (
            set %%m=!v1!& set %%n=!v2!& set %%o=!v3!
    )
)
:: Final set for language independency (English and Portuguese - maybe works for Spanish and French)
set year=%yy%%aa%
set month=%mm%
set day=%dd%
set a=2
set /a c=%dd%+%a%
set var=00%c%
set var=%var:~-2%
:: Testing
echo Year:[%year%] - month:[%month%] - day:[%var%]
start "" EXCEL.exe "\\mwcfs\DC Duty Files\SAP PROCESSING\OSB DOWNLOAD\FOR DOWNLOAD\%year%\%month% December %year%\Day %var%\*.xlsx"
endlocal
pause

(1) यह आपके कोड को समझने में लोगों की मदद करेगा यदि आप कुछ और टिप्पणियां जोड़ेंगे (उस डेटा के प्रारूप से शुरू करें जिसकी आपको अपेक्षा है date आदेश, और आप अपने साथ क्या करने की कोशिश कर रहे हैं v1, v2, v3, m, n, तथा o चर) और समझाएं कि स्क्रिप्ट क्या करने की कोशिश कर रही है, कुल मिलाकर। (2) मेरे (en_US) सिस्टम पर, echo.|date (प्यारा चाल, वैसे) उत्पादन की दो लाइनें पैदा करता है: The current date is: Thu 12/14/2017 तथा Enter the new date: (mm-dd-yy)। ... (जारी)
Scott

(योगदान करें) ... कह कर skip=1, आपका कोड पार्सिंग समाप्त करता है Enter the new date पंक्ति, जो कि संभवत: वह नहीं है जो आप चाहते हैं। (3) ... इसके अलावा यह उस जानकारी का उपयोग नहीं करता है जो इससे प्राप्त जानकारी का उपयोग करता है echo.|date, के बाद से for कथन चर सेट करता है m, n, तथा o, और आप तुरंत उन मूल्यों को अधिलेखित कर देते हैं, जो आपके पास पहले से मौजूद डेटा के साथ हैं। (4) क्या आप चर सेट कर रहे हैं yy, aa, mm, तथा dd कहीं? यदि हां, तो आपको उसे समझाना चाहिए। ... (जारी)
Scott

(कॉन्टीड) start "" excel *.xlsx, मुझे एक त्रुटि संदेश मिला (Excel2013 से) *.xlsx नहीं मिला। क्या आपने निर्देशिका पथ को हाथ से बनाने की कोशिश की है और परीक्षण कर रहे हैं कि क्या आपका एक्सेल का संस्करण वाइल्डकार्ड (जैसे) को संभाल सकता है * )?
Scott

जवाबों:


0

आप एक का उपयोग कर सकते हैं FOR उस निर्देशिका की सभी फ़ाइलों पर पुनरावृति करने के लिए कमांड करें और फिर प्रत्येक को खोलने के लिए एक्सेल का उपयोग करें। मैं PUSHD कमांड का उपयोग अस्थायी रूप से काम करने वाली डायरेक्टरी को बदलने के लिए कर रहा हूं जहां फाइलें स्थित हैं। POPD कमांड वर्किंग डायरेक्टरी को पिछली डायरेक्टरी में वापस लाती है

PUSHD "\\mwcfs\DC Duty Files\SAP PROCESSING\OSB DOWNLOAD\FOR DOWNLOAD\%year%\%month% December %year%\Day %var%\"
for %%G in (*.xlsx) do start "" excel.exe "%%~G"
POPD

यहां YYYYMMDDhhmmss प्रारूप में दिनांक और समय प्राप्त करने का एक बेहतर तरीका है

REM Get date and time in YYYYMMDDhhmmss format
for /f "tokens=2 delims==." %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"

यह 20171214150615 आउटपुट देगा। फिर आप प्रत्येक दिनांक और समय खंड के लिए अलग-अलग चर बनाने के लिए सेट कमांड और सबस्ट्रिंग का उपयोग कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.