PDA

Показать полную графическую версию : [решено] Соединить файлы в подпапках..


krbmoney
13-03-2012, 15:07
Здравствуйте, гуру Батников и просто уважаемые форумчане!

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

нашел команду copy/b *.txt newfile.txt
только это для данной папки работает, и что буква /б значит кто-нибудь знает?

спасибо за внимание.

El Sanchez
13-03-2012, 16:14
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"

и что буква /б значит кто-нибудь знает? »

copy /?
/B Файл является двоичным файлом.

krbmoney
13-03-2012, 16:29
El Sanchez, огромное спасибо!

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

El Sanchez
13-03-2012, 18:43
а можно полученный файл оставить, а остальные удалить? »
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
)


или полученные файлы в какую-нить папку закинуть? »

@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




© OSzone.net 2001-2012