Текст из одного файла перенести в другой текстовый файл
Скопировать текст из одного файла и перенести в другой
Добрый день! Подскажите, пожалуйста, как решить задачу ниже: файл 1.txt содержит такую.
Как передать текст (текстовый файл или текст в программе) через запущенный VS с одного компа на другой?
Как передать текст (сохраненный через VS автоматически текстовый файл или сам некоторый текст в.

Из одного файла переместить текст в другой файл с заменой текста на другой
Помогите нужно сделать вот такую вещь заготовка есть но не могу осмыслит как сделать вот это: .

Считать слова из одного текстового файла в другой текстовый файл
2.Написать программу, которая считывает слова из одного текстового файла и записывает их в столбик.
![]()
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
Сообщение от lexflax 
текст из одного файла перенести в другой текстовый файл, кто может напишите листинг программы чтоб выполняло это условие заранее спасибо
Просто напишите функцию копирования произвольного файла, она подойдет и для текстовых файлов, и плюс ко всему у вас будет универсальная функция копирования.
![]()
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
1 2 3 4 5 6 7 8 9 10 11 12
#include #include int main(void){ FILE *t1=fopen("c:\\1.txt","rt"); FILE *t2=fopen("c:\\2.txt","wt"); while (!feof(t1)) fputc(fgetc(t1),t2); //fcloseall(); убери коментарии и следующие две строчки удали, а если если компилятор будет выдовать ошибки то поставь коментарии на место fclose(t1); fclose(t2); return 0; }
Регистрация: 03.04.2011
Сообщений: 631
листинг копирование содержимого текстового файла в другой тектовый файл, объясните некоторые слова программы просто знание языка плохое хочу именно понять весь смысл этого листинга
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#pragma argsused #include #include #include #include - Что вот это за библиотека? и зачем она используется. using namespace std; void cp(ifstream &f, ofstream &t){ (вот тут &f и &t со значками & что он означает и можно ли без него. ) string s( (istreambuf_iteratorchar>(f)), (вот тут вообще ниче не потяно что означает istreambuf_iterator?? istreambuf_iteratorchar>() ); t;( что вот эта строчка означает. ) } int main() ifstream ifs("tt.txt");//From ( ну сдесь так понимаю считывание одного файла) ofstream ofs("tttt.txt");//To ( а сдесь создание нового и перенос в него информации с первого файла) if(!ifs cp(ifs, ofs); (вот тут что ср означает?) return 0;
Копирование файлов scp
Если у вас есть домашний сервер или сервер в интернете, то вам понадобится способ для безопасного перемещения файлов между машинами. Между локальными машинами мы могли бы просто переносить данные с помощью флешки, но на удаленный сервер нужно передавать данные только через сеть. Есть много способов реализации этой задачи.
В этой статье мы рассмотрим как выполняется копирование файлов с помощью утилиты scp (Secure Copy Command), а также что из себя представляет команда Linux scp. При передаче файлы шифруются, так что больше никто не сможет получить к ним доступ и самое интересное, что вам не нужно настраивать FTP или другое дополнительное программное обеспечение. Будет достаточно сервера SSH.
Что такое SCP?
Команда scp — это утилита, которая работает по протоколу SSH, а значит, все что вам нужно для передачи файла на компьютер, это чтобы на нем был запущен SSH сервер, а также вы должны знать логин и пароль для подключения к нему. С помощью команды scp вы можете не только перемещать файлы между локальной и удаленной системой, но и между двумя удаленными системами. Для этого тоже будет достаточно знать пароли от них. И в отличие от Rsync вам не нужно авторизоваться на одном из серверов.
Копирование файлов scp
Эта статья рассчитана в первую очередь на начинающих, поэтому я попытаюсь объяснять все как можно подробнее. Перед тем, как мы перейдем к практике, нужно рассмотреть общий синтаксис команды:
$ scp опции пользователь1@хост1 : файл пользователь2@хост2: файл
Опции утилиты больше касаются протокола SSH и настраивают общее ее поведение. Дальше следует адрес первого и второго файла. Каждый из них может быть расположен как на локальной, так и на удаленной машине. А теперь рассмотрим основные опции, которые могут нам понадобиться:
- -1 — использовать протокол SSH1;
- -2 — использовать протокол SSH2;
- -B — пакетный режим для передачи нескольких файлов;
- -C — включить сжатие;
- — l — установить ограничение скорости в кбит/сек;
- -o — задать нужную опцию SSH;
- -p — сохранять время модификации;
- -r — рекурсивное копирование директорий;
- -v — более подробный режим.
scp /home/sergiy/file root@losst.pro:/root/

В качестве пользователя нужно использовать любого пользователя, который есть на сервере. Вместо IP вы можете также домен сервера. Только необходимо, чтобы у выбранного пользователя были права записи в указанную папку.
С помощью опции -r вы можете скопировать на удаленную машину целый каталог. Команда будет выглядеть вот так:
scp -r /home/sergiy/photos root@losst.pro:/root/

Убедитесь, что у исходного каталога нет косой черты, а у каталога назначения она должна обязательно быть. Немного изменив синтаксис с косой чертой можно передать все файлы из каталога на удаленный сервер:
scp -r /home/sergiy/photos/* root@losst.pro:/root/

Если поменять местами локальный путь и сервер, то вы сможете копировать файлы scp c удаленного сервера на локальный компьютер:
scp root@losst.pro:/root/file /home/sergiy/

Таким же самым образом вы можете копирование файлов scp или папок с сервера:
scp -r root@losst.pro:/root/photos /home/sergiy/

Обратите внимание, что папка, в которую вы собираетесь копировать должна завершаться косой чертой, иначе папка, которую вы копируете запишется вместо той, в которую нужно скопировать.
Чтобы скачать файл scp из одного сервера на другой, просто необходимо указать данные аутентификации на каждом из них. Например, скопируем один файл:
scp root@losst.pro:/home/root/index.html root@losst.pro:/home/root/www/
Скопируем папку с того же удаленного сервера:
scp root@losst.pro:/root/photos root@losst.pro:/home/root/www/
Выводы
В этой статье мы рассмотрели как выполняется передача файлов scp, как это работает и что вы можете сделать с помощью этой утилиты. Как вы видите, перемещать файлы с одного сервера на другой очень просто. В Linux достаточно понять основы чтобы начать работать эффективнее! А команда scp один из таких инструментов.
hobocopy — копирование файлов, которые используются в данный момент
Оригинальное название статьи — ‘Backup/Copy Files that are «In Use» or «Locked» in Windows’.
Если Вы когда-то пробовали скопировать файл, который используется другим приложением, Вы могли видеть сообщение об ошибке типа «The process cannot access the file because another process has locked a portion of the file». Начиная с Windows XP, поддерживается технология Volume Shadow Copy (в русской версии соответствующий сервис называется «Теневое копирование тома»), которая используется для реализации фич Previous versions («Предыдущие версии») в Vista, System Restore («Восстановление системы») и бекапов. Суть в том, что создается временный «снимок» файла или раздела, а затем приложению дается возможность чтения этого «снимка», даже если другие приложения читают или даже модифицируют данный файл. Одна из полезных утилит, которая использует технологию Volume Shadow Copy, называется HoboCopy. Для ее работы должен также быть запущен сервис «Microsoft Software Shadow Copy Provider».
Копиривание одного файла
Ситнаксис командной строки:
hobocopy c:\directoryname\ d:\backupdirectory\
Например, если мы хотим скопировать файл c:\users\vasya\mail\outlook.pst в d:\backups\outlook.pst, то команда будет следующая:
C:\>hobocopy c:\users\vasya\mail\ d:\backups\Outlook.pst HoboCopy (c) 2006 Wangdera Corporation. [email protected] Starting a full copy from c:\users\vasya\mail to d:\backups\ Copied directory Backup successfully completed. Backup started at 2008-03-09 01:57:28, completed at 2008-03-09 01:58:39. 1 files (606.45 MB, 1 directories) copied, 7 files skipped
Копирование директории
Можно также скопировать сразу всю директорию, в этом случае нужно использовать опции /full, /r (рекурсивное копирование) и /y (не спрашивать подтверждения).
hobocopy /full /skipdenied /y /r c:\users\vasya\ d:\backups\
Инкрементальное копирование
А для регулярного копирования целого раздела пригодятся опции /incremental (копировать только файлы, измененные с момента последнего полного копирования) и /statefile (указывается путь к файлу, содержащему служебную информацию о последнем бекапе).
hobocopy /incremental /statefile=d:\lastbackup.dat /y /r c:\users\vasya\ d:\backups\
При первом запуске вместо /incremental следует использовать /full чтобы создался файл состояния.
Утилиту скачать можно здесь.
- Remote syslog из Windows
- Сброс пароля администратора в Windows XP/2003
- Полезные команды windows
- Windows 7 и два маршрута по умолчанию
CMD/BAT: Скопировать файлы (*w.txt) из папки (s\f\3*) =3хх-хw.txt
Доброго времени суток!
Надо найти в определенных папках, заданных маской, определенные файлы, тоже заданные маской.
Найденные файлы скопировать в папку, откуда запущен bat-ник. Поскольку имена найденных файлов могут совпадать, то имена результирующих файлов должны состоять из имени папки, в которой они находились, и оригинального имени файла.
Вот код, который мне удалось написать. Он не делает из того, что мне надо только одно- не присваивает новые имена.
Помогите, пожалуйста.
set folder_where=%~dp0 rem for /d %%B in (%USERPROFILE%\AppData\Roaming\PC\3*) do ( for %%C in ("%%B\*.txt") do copy /y "%%C" "%folder_where%" >NUL ) pause
Из моего кода видно, что в каталоге %USERPROFILE%\AppData\Roaming\PC\ есть некие папки, названия которых начинаются с цифры 3 (три). Количество символов в имени папки (цифр), как правило, 12. В таких папках мне надо найти определенные файлы по маске *.txt. например: readme.txt. Такие файлы должны появиться в папке с батником под именем=имя папки+имя файла, например: 321098765432-readme.txt
И еще. Хотелось сделать проверку на наличие файла (321098765432-readme.txt). Если у записанного дата старее, чем у нового (readme.txt), то перезаписать, иначе не надо.
Заранее спасибо.
2 Ответ от andypetr 2022-06-15 07:39:31
- andypetr
- Разработчик
- На форуме










Re: CMD/BAT: Скопировать файлы (*w.txt) из папки (s\f\3*) =3хх-хw.txt
123ksn, приветствую.
Вот мой вариант.
Присваиваются новые имена, обновляются существующие файлы (ключ /D команды XCOPY).
set "folder_where=%~dp0" for /d %%B in (%USERPROFILE%\AppData\Roaming\PC\3*) do ( for %%C in ("%%B\*.txt") do echo F|xcopy "%%C" "%folder_where%%%~nxB-%%~nxC" /d /h /k /r /y >NUL rem "echo F|" подавляет запрос на копирование новых файлов "(F = файл, D = каталог)". rem Ключи XCOPY: rem /D:m-d-y Копирует файлы, измененные либо в указанный день, либо после. rem Если дата не указана, копируются только те файлы, которые новее в исходной папке. rem /H Копирует скрытые и системные файлы. rem /R Заменяет файлы, доступные только для чтения. rem /K Копирует атрибуты. Простая команда Xcopy сбрасывает атрибут "Только чтение". rem /Y Подавляет запрос на подтверждение перезаписи существующего конечного файла. )
3 Ответ от 123ksn 2022-06-15 09:23:21 (изменено: 123ksn, 2022-06-15 09:29:13)
Re: CMD/BAT: Скопировать файлы (*w.txt) из папки (s\f\3*) =3хх-хw.txt
andypetr
Большое спасибо. Проверил. Не работает. Добавил pause. Проскакивает черный экран, но файлы не появляются.
4 Ответ от andypetr 2022-06-15 10:43:31 (изменено: andypetr, 2022-06-15 10:47:29)
- andypetr
- Разработчик
- На форуме










Re: CMD/BAT: Скопировать файлы (*w.txt) из папки (s\f\3*) =3хх-хw.txt
123ksn, попробуйте добавить последней строкой PAUSE.
И в строке «for %%C . >NUL» заменить «>NUL» на «>>1.txt«.
Что выводится на экран и в файл 1.txt?
PS. Точно ли у вас в папке %USERPROFILE%\AppData\Roaming содержится папка PC с папками, начинающимися на 3*, в которых есть файлы .txt?
Я у себя всё это создал для тестирования — например, есть файл C:\USERS\ПОЛЬЗОВАТЕЛЬ\APPDATA\ROAMING\PC\321098765432\readme.txt.
5 Ответ от 123ksn 2022-06-15 11:59:53
Re: CMD/BAT: Скопировать файлы (*w.txt) из папки (s\f\3*) =3хх-хw.txt
andypetr
Извините меня пожалуйста. Оказывается РС у меня было на русском языке. Поэтому не сработало. Теперь файлы сохраняет как и хотел. Чуть позже проверю с логику с датами.
Я видимо наглею, но нельзя ли сделать вариант контроля не по дате, а по размеру. Я подумал, что нет смысла перезаписывать старый файл новым, из которого удалили часть информации.
В любом случае Вам огромное спасибо за работающий вариант и за обучение, как увидеть лог работы батника.
6 Ответ от andypetr 2022-06-15 13:47:31
- andypetr
- Разработчик
- На форуме










Re: CMD/BAT: Скопировать файлы (*w.txt) из папки (s\f\3*) =3хх-хw.txt
123ksn
Не хотел усложнять, но тут потребуется команда «SetLocal EnableDelayedExpansion«, которая позволяет легко обращаться к значению переменной внутри блока кода, ограниченного скобками — через восклицательные знаки.
Я первой строкой всех своих BAT-файлов всегда пишу «@echo off & SetLocal EnableExtensions EnableDelayedExpansion», так проще кодировать.
В данном примере я обращаюсь к значению переменной «doCopy»: «%doCopy%» не раскрывает значение переменной, а вот «!doCopy!» всё делает как надо.
Аналогично, можно было бы написать «for %%D in («!folder_where!%%~nxB-%%~nxC»)» — хотя тут и с процентами срабатывает.
В общем, я везде где можно раскрываю значения переменных через «!».
За исключением переменных-параметров (%0, %*, %1, . %9), переменных циклов (%%a-%%z, %%A-%%Z) и переменных окружения (%PATH% и т.д.).
@echo off & SetLocal EnableExtensions EnableDelayedExpansion set "folder_where=%~dp0" for /d %%B in (%USERPROFILE%\AppData\Roaming\PC\3*) do ( for %%C in ("%%B\*.txt") do ( for %%D in ("%folder_where%%%~nxB-%%~nxC") do ( rem Сравнение размеров файла-источника %%C и файла-приемника %%D: if exist "%%~D" ( set /a doCopy = %%~zC - %%~zD ) else ( set /a doCopy = 1 ) rem переменная doCopy: rem > 0, если файл %%C больше по размеру, чем файл %%D (нужно копирование) rem = 1, если файл %%D не существует (нужно копирование) rem = 0, если файлы равны по размеру (нужно копирование с ключом /D) rem < 0, если файл %%C меньше по размеру, чем файл %%D (не нужно копирование) if !doCopy! geq 1 ( echo F|xcopy "%%~C" "%%~D" /h /k /r /y >NUL ) else ( if !doCopy! equ 0 ( echo F|xcopy "%%~C" "%%~D" /d /h /k /r /y >NUL ) ) rem "echo F|" подавляет запрос на копирование новых файлов "(F = файл, D = каталог)". rem Ключи XCOPY: rem /D:m-d-y Копирует файлы, измененные либо в указанный день, либо после. rem Если дата не указана, копируются только те файлы, которые новее в исходной папке. rem /H Копирует скрытые и системные файлы. rem /R Заменяет файлы, доступные только для чтения. rem /K Копирует атрибуты. Простая команда Xcopy сбрасывает атрибут "Только чтение". rem /Y Подавляет запрос на подтверждение перезаписи существующего конечного файла. ) ) ) pause EndLocal exit /b