सीएमडी का उपयोग करके संख्यात्मक पाठ में एक पाठ फ़ाइल में कई पाठ फ़ाइलों की प्रतिलिपि बनाना


1

मैं फ़ाइलों को "विद्वान (1) .txt" से "विद्वान (25) .txt" की प्रतिलिपि बनाना चाहता था। एक .txt फ़ाइल में निम्न विधियों का उपयोग किया गया था: wikihow: मर्ज पाठ ( .Txt ) कमांड प्रॉम्प्ट में फ़ाइलें।

for %f in (*.txt) do type "%f" >> output.txt

SU: विंडोज़ कमांड लाइन का उपयोग करके पाठ फ़ाइलों को संयोजित करने का एक तरीका है?

copy *.txt bigfile.txt

भी type *.js > all.txt

लेकिन सभी फाइलों को क्रमबद्ध तरीके से कॉपी नहीं किया जाता है:

`C:\..\Documents\New folder>type *.txt >all.txt

 scholar (1).txt
 scholar (10).txt
 scholar (11).txt
 scholar (12).txt
 scholar (13).txt
 scholar (14).txt
 scholar (15).txt
 scholar (16).txt
 scholar (17).txt
 scholar (18).txt
 scholar (19).txt
 scholar (2).txt
 scholar (20).txt
 scholar (21).txt
 scholar (22).txt
 scholar (23).txt
 scholar (24).txt
 scholar (25).txt
 scholar (3).txt
 scholar (4).txt
 scholar (5).txt
 scholar (6).txt
 scholar (7).txt
 scholar (8).txt
 scholar (9).txt`

बहुत बुरा है कि तरह संख्यानुसार सॉर्ट करने के लिए एक विकल्प है नहीं लगता है।
ग्लेन जैकमैन

यह स्पष्ट करने के लिए कि क्या हो रहा है, फाइलों को अनुक्रमिक क्रम में कॉपी किया जा रहा है, सिर्फ संख्यात्मक क्रम में नहीं । विंडोज एक्सप्लोरर ने सीखा है कि पिछले एक या दो वर्षों में संख्यात्मक क्रम में कैसे छंटनी की जाती है, लेकिन कमांड प्रॉम्प्ट अभी भी शाब्दिक क्रम का उपयोग करता है ; यानी, डिक्शनरी ऑर्डर। जिस तरह शब्द "हा", "वह", "हाय", और "हो" शब्द "आई" से पहले आते हैं, इसलिए संख्या 10, 11, 12, ..., 19 को पहले 2 क्रमबद्ध किया जाता है। यदि आप अपना नाम बदल सकते हैं 1, 2, 3,…, 9 फ़ाइलों को 01, 02, 03,…, 09 के नाम से जाना जाएगा।
स्कॉट

जवाबों:


1
(for /l %a in (1 1 25) do @type "scholar (%a).txt")>all.txt

बैच फ़ाइल के अंदर उपयोग के लिए, प्रतिशत संकेतों को दोगुना करने की आवश्यकता होती है, %जिसके साथ प्रतिस्थापित किया जाता है%%

यदि फ़ाइलों की कुल संख्या अज्ञात है, लेकिन फ़ाइलों को संकेत के रूप में नामित किया गया है, तो इस कोड का उपयोग किया जा सकता है

@echo off
    setlocal enableextensions disabledelayedexpansion

    for %%z in ("scholar (*).txt") do for /f "tokens=2 delims=()" %%a in ("%%~nxz") do (
        set /a "num=1000000000+%%a"
        setlocal enabledelayedexpansion
        for %%b in (!num!) do endlocal & set "f[%%b]=%%~fz"
    )
    (for /f "tokens=1,* delims==" %%a in ('2>nul set f[') do type "%%b") > all.txt

यह पर्यावरण में एक सरणी बनाता है जो हमें फाइलों की एक अच्छी तरह से संख्यात्मक क्रमबद्ध सूची को पुनः प्राप्त करने की अनुमति देता है।


अच्छा विचार है, लेकिन ... "पर्यावरण चर एफ [परिभाषित नहीं"
मिशेल डी रुएटर

1
@MicheldeRuiter, आप एरर मेसेज (अब कोड में शामिल) से बच सकते हैं, लेकिन इसका कारण यह है कि मेल की हुई फाइलें नहीं मिली हैं
MC ND
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.