Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 1
Регистрация: 15.12.2014
Сообщений: 12
1

Удаление первых 6-ти строк во всех текстовых файлах, находящихся в определённой папке

29.11.2015, 16:23. Показов 2625. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет. Пытаюсь создать BAT CMD файл удаляющий первые 6 строк в каждом файле папки. В папке приблизительно 170 файлов и таких папок 182 штуки. То есть вручную это делать, мягко говоря, не вариант. Имеется вот такой код для одного файла, но он не работает

Windows Batch file
1
2
3
4
5
for /f "skip=6 delims=*" %%a in ("C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data\000\Trajectory\1.txt") do (
echo %%a >>C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data\000\Trajectory\2.txt    
)
xcopy C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data\000\Trajectory\2.txt C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data\000\Trajectory\1.txt /y
del C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data\000\Trajectory\2.txt /f /q
ВОПРОС 1 - Как его заставить работать хотя бы для одного файла;
ВОПРОС 2 - Как его расширить, чтобы он работал для всех файлов в папке.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2015, 16:23
Ответы с готовыми решениями:

Поиск имен всех файлов, находящихся в определенной папке
Народ как записать (например в Memo) имена всех файлов, находящихся в определеннои папке??

Замена части определённой строки во всех текстовых файлах заданной директории
Доброго день. Необходима помощь в написании bat, который бы заменил во всех файлаx (.txt) в...

Как создать разом ярлыки для всех папок и файлов, находящихся в определённой папке?
Есть папка в ней ещё много папок и под папок и разные файлы. Как разом создать ярлыки для все папок...

Удаление пустых строк в текстовых файлах
Дан текстовый файл, в котором встречаются пустые строки. Надо написать программу которая эти пустые...

6
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
29.11.2015, 19:05 2
Лучший ответ Сообщение было отмечено Programmer 111 как решение

Решение

Для одного файла:
Windows Batch file
1
2
3
4
5
6
7
@echo off
 
set "file=C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data\000\Trajectory\1.txt"
 
>.tmp more +6 "%file%"& >nul move .tmp "%file%"
 
exit/b
.


Для всех текстовых файлов в папке:
Windows Batch file
1
2
3
4
5
6
7
@echo off
 
set "dir=C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data\000\Trajectory"
 
for %%i in ("%dir%\*.txt") do >.tmp more +6 "%%i"& >nul move .tmp "%%i"& echo %%~nxi
 
exit/b
.
1
0 / 0 / 1
Регистрация: 15.12.2014
Сообщений: 12
29.11.2015, 23:48  [ТС] 3
Спасибо, работает!

Добавлено через 3 часа 42 минуты
По ходу выполнения появился дополнительный вопрос. Попытался переделать код, чтобы работал по всем папкам в родительской папке. BAT файл доходит до определенного места (обрабатывает 9 папок) и останавливается...?
Windows Batch file
1
2
3
4
5
6
7
@echo off
 
set "dir=C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data"
 
for /R %%i in ("*.plt") do >.tmp more +6 "%%i"& >nul move .tmp "%%i"& echo %%~nxi
 
exit/b
0
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
30.11.2015, 00:37 4
Лучший ответ Сообщение было отмечено Programmer 111 как решение

Решение

Windows Batch file
1
2
3
4
5
6
7
@echo off
 
set "dir=C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data"
 
for /r "%dir%" %%i in ("*.plt") do >.tmp more +6 "%%i"& >nul move .tmp "%%i"& echo %%~nxi
 
exit/b
1
0 / 0 / 1
Регистрация: 15.12.2014
Сообщений: 12
30.11.2015, 01:19  [ТС] 5
Спасибо, но по прежнему доходит до определенного места и перестает удалять. В родительской папке 182 папки (в каждой примерно 170 файлов), слишком большая рекурсия видимо.

Добавлено через 34 минуты
Хотя скрипт на изменение расширения проходит все файлы во все папках.
Windows Batch file
1
2
3
4
5
6
7
8
9
@ECHO OFF
PUSHD .
FOR /R %%d IN (.) DO (
    cd "%%d"
    IF EXIST *.plt (
       REN *.plt *.txt
    )
)
POPD
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
30.11.2015, 16:09 6
Лучший ответ Сообщение было отмечено Programmer 111 как решение

Решение

Попробуйте так изменить:
Windows Batch file
1
2
3
4
5
6
7
@echo off
 
set "dir=C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data"
 
for /f "delims=" %%i in ('dir /a-d /b /s "%dir%\*.plt"') do >.tmp more +6 "%%i"& >nul move .tmp "%%i"& echo %%~nxi
 
exit/b
.
1
0 / 0 / 1
Регистрация: 15.12.2014
Сообщений: 12
30.11.2015, 23:09  [ТС] 7
Спасибо, но все равно такая же ситуация. В общем написал скрипт, который копирует этот файл во все подкаталоги, сейчас пытаюсь написать скрипт который вызовет все эти BAT файлы, но что-то не хочет работать
Windows Batch file
1
2
3
4
5
6
7
@echo off
 
set "dir=C:\Users\Ok\Desktop\Geolife Trajectories 1.3\Data"
 
for /r "%dir%" %%i in ("*.bat") do CALL (BAT4.bat)
 
exit/b
Добавлено через 2 часа 53 минуты
Спасибо большое. Задача решена. Проблема была в конкретном файле, при его удалении скрипты сработали.
0
30.11.2015, 23:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2015, 23:09
Помогаю со студенческими работами здесь

Работа с файлами и каталогами. Удаление всех пустых строк у всех файлов лежащих в одной папке
В одной папке находится множество текстовых файлов *.txt Все файлы содержат некоторый текст Между...

Создание красивой галереи картинок, находящихся в определенной папке
доброго времени суток, ребята! есть ли у кого хорошая идея как сделать масштабную галерею, что бы...

Удалить строку с ключевым набором символов во всех файлах в папке и всех подпапках
Здравствуйте, очень нужна помощь в решении следующей задачи! Есть папка .\temp в которой...

Пользователь вводит путь к папке; подсчитать, сколько гласных букв находится в текстовых файлах этой папки
Пользователь вводит путь к папке. Программа подсчитывает сколько гласных букв находится в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru