CMD/BAT - [решено] Соединить файлы в подпапках..

Ответить
Аватара пользователя
krbmoney

CMD/BAT - [решено] Соединить файлы в подпапках..

Сообщение krbmoney »

Здравствуйте, гуру Батников и просто уважаемые форумчане!



Помогите в создании бат файла. Допустим в папке есть много подпапок, в которых по два-три файла (пусть расширение будет тхт)

Нужно из этих двух-трех файлов сделать один с таким же разрешением (тхт), т.е. соединить (пусть будет два) два файла в один. Название будущего файла значения не имеет.



нашел команду copy/b *.txt newfile.txt

только это для данной папки работает, и что буква /б значит кто-нибудь знает?



спасибо за внимание.
Аватара пользователя
El Sanchez

Re: CMD/BAT - [решено] Соединить файлы в подпапках..

Сообщение El Sanchez »

krbmoney,



Код:

Код: Выделить всё

@Echo Off
Set Source=C:\Source
For /R "%Source%" %%A In (*.txt) Do If Not Exist "%%~dpA_merged%%~xA" Copy /Y /B "%%~dpA*%%~xA" "%%~dpA_merged%%~xA"


Цитата krbmoney:



и что буква /б значит кто-нибудь знает?
CMD/BAT - [решено] Соединить файлы в подпапках..






Код:

Код: Выделить всё

copy /?
 /B           Файл является двоичным файлом.
Аватара пользователя
krbmoney

Re: CMD/BAT - [решено] Соединить файлы в подпапках..

Сообщение krbmoney »

El Sanchez, огромное спасибо!



а можно полученный файл оставить, а остальные удалить? или полученные файлы в какую-нить папку закинуть?
Аватара пользователя
El Sanchez

Re: CMD/BAT - [решено] Соединить файлы в подпапках..

Сообщение El Sanchez »

Цитата krbmoney:



а можно полученный файл оставить, а остальные удалить?
CMD/BAT - [решено] Соединить файлы в подпапках..




krbmoney,



Код:

Код: Выделить всё

@Echo Off
SetLocal
Set Source=C:\Source
For /R "%Source%" %%A In (*.txt) Do (
	If Not Exist "%%~dpA_merged%%~xA" Copy /Y /B "%%~dpA*%%~xA" "%%~dpA_merged%%~xA"
	If /i Not "%%~nxA"=="_merged%%~xA" Del /F /Q "%%A" 2>nul
)


Цитата krbmoney:



или полученные файлы в какую-нить папку закинуть?
CMD/BAT - [решено] Соединить файлы в подпапках..






Код:

Код: Выделить всё

@Echo Off
SetLocal
Set Source=C:\Source
Set Output=C:\Output
PushD %Output%
For /R "%Source%" %%A In (*.txt) Do If /i Not "%%~dpA"=="%CD%\" If Not Exist "%%~dpA_merged%%~xA" Copy /Y /B "%%~dpA*%%~xA" "%%~dpA_merged%%~xA"
PopD
For /F "Tokens=1* Delims=:" %%A In ('Dir /B /S _merged.txt^|FindStr /in .') Do Move /Y "%%B" "%Output%\%%~nB_%%A%%~xB" 2>nul
Ответить

Вернуться в «Скриптовые языки администрирования Windows»