खोज…


परिचय

इस विषय में आप सीखेंगे कि बैच में फ़ाइलों को कैसे बनाएं, संपादित करें, कॉपी करें, स्थानांतरित करें और हटाएं।

बैच में एक फ़ाइल बनाना

आप बैच में पाठ फ़ाइल बनाना चाहते हैं, इसके कई कारण हो सकते हैं। लेकिन जो भी कारण हो सकता है, यह आप कैसे करते हैं।

यदि आप किसी मौजूदा टेक्स्ट फ़ाइल उपयोग को ओवरराइट करना चाहते हैं > । उदाहरण:

@echo off
echo info to save > text.txt

लेकिन अगर आप टेक्स्ट को पहले से मौजूद टेक्स्ट फाइल के इस्तेमाल से जोड़ना चाहते हैं तो >> उदाहरण:

@echo off
echo info to save >> text.txt

यदि आपको पाठ की कई पंक्तियों को फ़ाइल उपयोग ()>text.txt उदाहरण में ()>text.txt :

@echo off
(echo username
 echo password)>text.txt

कैसे बैच में फ़ाइलें कॉपी करने के लिए

आप फ़ाइलों को एक स्थान से दूसरे स्थान पर कॉपी करना चाह सकते हैं। इस उदाहरण में हम आपको सिखाएंगे।

आप कमांड xcopy उपयोग कर सकते हैं। सिंटैक्स xcopy c:\From C:\To

उदाहरण:

@echo off
xcopy C:\Folder\text.txt C:\User\Username\Desktop

ऐसे स्विच भी हैं जिनका आप उपयोग कर सकते हैं। यदि आप उन्हें Start Menu -> Accessories -> Command Prompt और फिर xcopy /? टाइप करके कमांड प्रॉम्प्ट को खोलकर देखना चाहते हैं xcopy /?

चल फ़ाइलें

चाल कमांड का उपयोग करके, आप फ़ाइलें स्थानांतरित कर सकते हैं:

@echo off
cd C:\Foo\Bat\Baz
move /Y Meow.bat "Meow Folder" >nul

Meow.bat किस फ़ाइल को स्थानांतरित करना है। "म्याऊ फ़ोल्डर" चाल Meow.bat को Meow Folder/Y पुष्टि के लिए संकेत नहीं करने के लिए कहता है। उस के साथ /-Y बदलने से पुष्टि के लिए बैच फ़ाइल प्रॉम्प्ट बन जाती है। >nul कमांड आउटपुट को छुपाता है। अगर यह नहीं था >nul , तो यह आउटपुट:

    1 File Moved

फ़ाइलें हटाना

का उपयोग करते हुए DEL (के लिए उर्फ ERASE आदेश), एक फाइल को निकाल सकते हैं।

@echo off
del foo.ext

यह कमांड चालू निर्देशिका से foo.ext को हटा foo.ext । कोई भी पथ और फ़ाइल निर्दिष्ट कर सकता है, जैसे:

del C:\Foo\Bar\Baz.ext

लेकिन हमेशा पथ के आसपास उद्धरण ( " ) डालना आदर्श है, यहां कारण के लिए देखें।


DEL लिए कुछ झंडे उपलब्ध हैं।

झंडा समारोह
/P फ़ाइल हटाने से पहले उपयोगकर्ता को संकेत देता है
/F जबरदस्ती केवल पढ़ने के लिए फ़ाइल निकालें
/S उपनिर्देशिकाओं में फ़ाइल निकालें
/Q उपयोगकर्ता शीघ्र रोकता है
/A फ़िल्टर: केवल विशिष्ट अधिकृत फ़ाइल निकालें,
का उपयोग कर - चरित्र है कि प्रकार के रूप में माने होना।

बिना xcopy फाइल कॉपी करें

इस उदाहरण में , उपयोगकर्ता BoeNoe ने फाइलों को कॉपी xcopy लिए कमांड xcopy का उपयोग करने का तरीका दिखाया। एक अतिरिक्त कमांड भी है जिसे copy कहा जाता copy

ये रहा एक सरल उदाहरण:

copy foo.ext bar.ext

यह प्रतियां foo.ext को bar.ext , और बनाने bar.ext जब यह मौजूद नहीं है। हम फ़ाइल के लिए पथ भी निर्दिष्ट कर सकते हैं, लेकिन हमेशा पथ के आसपास उद्धरण ( " ) डालना आदर्श है, कारण के लिए यहां देखें।


copy लिए भी कई झंडे उपलब्ध हैं, देखें copy /? या अधिक देखने के लिए कमांड प्रॉम्प्ट पर help copy

किसी फाइल की Nth लाइन का संपादन

बैच फ़ाइल replace और append ( > और >> ) को छोड़कर किसी फ़ाइल की n पंक्ति को replace लिए एक अंतर्निहित पद्धति के साथ नहीं आती है। छोरों के for उपयोग करना, हम इस तरह के फ़ंक्शन का अनुकरण कर सकते हैं।


@echo off
set file=new2.txt

call :replaceLine "%file%" 3 "stringResult"

type "%file%"
pause
exit /b

:replaceLine <fileName> <changeLine> <stringResult>
setlocal enableDelayedExpansion

set /a lineCount=%~2-1

for /f %%G in (%~1) do (
    if !lineCount! equ 0 pause & goto :changeLine
    echo %%G>>temp.txt
    set /a lineCount-=1
)

:changeLine
echo %~3>>temp.txt

for /f "skip=%~2" %%G in (%~1) do (
    echo %%G>>temp.txt
)

type temp.txt>%~1
del /f /q temp.txt

endlocal
exit /b
  • मुख्य स्क्रिप्ट फंक्शन replaceLine को फाइलनेम / जिसे लाइन बदलने के लिए / और स्ट्रिंग को बदलने के लिए कहता है।

  • फ़ंक्शन इनपुट प्राप्त करता है

    • यह सभी लाइनों के माध्यम से छोरों और प्रतिस्थापन लाइन से पहले एक अस्थायी फ़ाइल के लिए उन्हें echo
    • यह फ़ाइल के लिए प्रतिस्थापन लाइन से echo
    • यह बाकी फ़ाइल के लिए आउटपुट जारी रखता है
    • यह अस्थायी फ़ाइल को मूल फ़ाइल की प्रतिलिपि बनाता है
    • और अस्थायी फाइल को हटा देता है।
  • मुख्य स्क्रिप्ट नियंत्रण वापस प्राप्त करती है, और परिणाम type करती है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow