batch-file
बैच फ़ाइलों में फ़ाइल हैंडलिंग
खोज…
परिचय
इस विषय में आप सीखेंगे कि बैच में फ़ाइलों को कैसे बनाएं, संपादित करें, कॉपी करें, स्थानांतरित करें और हटाएं।
बैच में एक फ़ाइल बनाना
आप बैच में पाठ फ़ाइल बनाना चाहते हैं, इसके कई कारण हो सकते हैं। लेकिन जो भी कारण हो सकता है, यह आप कैसे करते हैं।
यदि आप किसी मौजूदा टेक्स्ट फ़ाइल उपयोग को ओवरराइट करना चाहते हैं >
। उदाहरण:
@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
करती है।