Поиск…


Вступление

В этом разделе вы узнаете, как создавать, редактировать, копировать, перемещать и удалять файлы в пакетном режиме.

Создание файла в пакетном режиме

Существует несколько причин, по которым вы хотите создать текстовый файл в пакетном режиме. Но какова бы ни была причина, так вы это делаете.

Если вы хотите перезаписать существующий текстовый файл, используйте > . Пример:

@echo off
echo info to save > text.txt

Но если вы хотите добавить текст в уже существующий текстовый файл, используйте >> . Пример:

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

Если вам нужно сохранить несколько строк текста в файле use ()>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 /?

Перемещение файлов

Используя команду move, вы можете перемещать файлы:

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

Meow.bat обозначает файл для перемещения. «Meow Folder» перемещает Meow.bat в Meow Folder . /Y говорит, что не запрашивает подтверждение. Заменяя это с помощью /-Y запрос командной строки для подтверждения. Функция >nul скрывает вывод команды. Если у него не было >nul , он выводит:

    1 File Moved

Удаление файлов

Используя команду DEL (псевдоним для ERASE ), можно удалить файлы.

@echo off
del foo.ext

Эта команда удалит foo.ext из текущего каталога. Можно также указать путь и файл, например:

del C:\Foo\Bar\Baz.ext

Но всегда удобно указывать кавычки ( " ) вокруг путей, см. Здесь по этой причине.


Для DEL есть несколько флагов.

Флаг функция
/P Запрашивает пользователя перед удалением файла (ов)
/F Сильно удалить файлы (-и) только для чтения
/S Удалить файл (ы) в подкаталогах
/Q Предотвращает приглашение пользователя
/A Фильтр: удалять только определенный атрибут файла,
используя атрибут - символ, не отнесенный к этому типу.

Скопировать файлы без xcopy

В этом примере пользователь BoeNoe показал, как использовать команду xcopy для копирования файлов. Существует также дополнительная команда, называемая copy .

Вот простой пример:

copy foo.ext bar.ext

Это копирует foo.ext в bar.ext и создает bar.ext если он не существует. Мы также можем указывать пути к файлу, но всегда желательно размещать кавычки ( " ) вокруг путей, см. Здесь по этой причине.


Есть также много флагов для copy , см. copy /? или help copy в командной строке, чтобы увидеть больше.

Редактирование N-й строки файла

Пакетный файл не поставляется со встроенным методом для замены n й строки файла, кроме replace и append ( > и >> ). Используя 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