Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Необходимо помощъ в написании батника для удаления столбцов из текстового файла.

Ответить
Настройки темы
CMD/BAT - [решено] Необходимо помощъ в написании батника для удаления столбцов из текстового файла.

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


У меня проблема в том что есть текстовый файл, который имеет 7 столбцов через один пробел, бывает и более. Мне необходимо из семи, удалить предпоследние 3. Например:

1 2 3 4 5 6 7
7 6 5 4 3 2 2
1 2 3 4 5 6 1

в итоге должен получиться файл

1 2 3 7
7 6 5 2
1 2 3 1


Просто мог бы и руками сделать. но у меня 100 файлов. не хотелось день терять.

Отправлено: 23:30, 01-04-2010

 

Старожил


Сообщения: 419
Благодарности: 108

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
SetLocal EnableExtensions
rem SetLocal EnableDelayedExpansion

rem В переменную FileList помещаете имя полное файла (без кавычек), содержащего список из Ваших 100 файлов
rem Сделать это можно командой "dir /b /s *.*>File.txt" и удалив лишнее. (читайте dir /?)
rem  * Возможны глюки, если имена файлов содержат символы "пробел" &()[]{}^=;!'+,`~
set FileList=File.txt

set WRK=%~n0.tmp

for /f "usebackq tokens=* delims=" %%F in ("%FileList%") do call :File "%%F"
exit

:File
set CFile=%1
ren %1 *.old
for /f "usebackq tokens=1-7* delims= " %%L in (%~dpn1.old) do echo %%L %%M %%N %%R >>%CFile%
exit /b

-------
Как сказало Дерево Дровосеку: "я - пень".

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:47, 02-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для zonderz

Ветеран


Сообщения: 727
Благодарности: 150

Профиль | Отправить PM | Цитировать


francke

пользуйтесь на здоровье
http://forum.oszone.net/attachment.p...1&d=1270210664

-------
MCP, MCSA, MCSE, разработчик программы CMDTools
http://forum.oszone.net/thread-170783.html


Последний раз редактировалось zonderz, 18-04-2010 в 02:33.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:07, 02-04-2010 | #3


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


была структура вот какая
3236 5028 17638839 0 1260 400 351
3428 4998 17638849 1 1260 400 382
3541 5056 17638859 1 1260 400 394
3665 5135 17638869 1 1310 400 397
3945 5229 17638879 1 1370 390 405
4243 5429 17638889 1 1420 380 392


После выполненения project1.rar стала

3236 5028 17638839 0 1260 1
3428 4998 17638849 1 1260 2
3541 5056 17638859 1 1260 4
3665 5135 17638869 1 1310 7

А нужна

3236 5028 17638839 351
3428 4998 17638849 382
3541 5056 17638859 394
3665 5135 17638869 397
3945 5229 17638879 405
4243 5429 17638889 392

Отправлено: 09:30, 02-04-2010 | #4


Ветеран


Сообщения: 2782
Благодарности: 574

Профиль | Отправить PM | Цитировать


NiOl, а зачем вы используете usebackq во всех for (не только в данном топике)?

Отправлено: 09:33, 02-04-2010 | #5


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


NioL Все получилось огромное спасибо.

zonderz, тебе тоже большое спасибо. Но ты не мог бы как нить подделать свой exe файл. Просто реализаия понравилась. Хочу ей в дальнейшем пользоваться.

Отправлено: 10:18, 02-04-2010 | #6


Старожил


Сообщения: 419
Благодарности: 108

Профиль | Отправить PM | Цитировать


Busla,
Не всегда, т.к. не люблю писать это сокращение (я очень ленив, как и положено админу ), но приходится на случай если используемое имя файла может содержать какие-нить неудобоваримые символы типа пробела (полный список приведен в этом топике и его всегда можно получить здесь: cmd /? )
Если Ваш вопрос в контексте, зачем вообще нужно "Use Back Quoted string", то подробнее можно прочесть здесь: for /?

Отправлено: 10:37, 02-04-2010 | #7


Аватара для zonderz

Ветеран


Сообщения: 727
Благодарности: 150

Профиль | Отправить PM | Цитировать


francke

столбцов через один пробел, бывает и более

здесь пробелов между цифрами нет - поэтому программа некорректно отработала

3236 5028 17638839 0 1260 400 351

Но ты не мог бы как нить подделать свой exe файл. Просто реализаия понравилась. Хочу ей в дальнейшем пользоваться.

скачайте файл еще раз - я его перезалил

-------
MCP, MCSA, MCSE, разработчик программы CMDTools
http://forum.oszone.net/thread-170783.html


Последний раз редактировалось zonderz, 02-04-2010 в 16:19.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:32, 02-04-2010 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Необходимо помощъ в написании батника для удаления столбцов из текстового файла.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Помощь по выбору сервака =) И нагрузки на него =) MazaHakEn Прочее железо 12 22-10-2009 18:45
C/C++ - Замена произвольных столбцов местами(массив) ShadowMas Программирование и базы данных 11 22-03-2009 21:48
Загадка (кто виновен в проблеме). Плиз отзовитесь! Fliker-09 Разгон, охлаждение и моддинг 16 18-04-2007 23:19
MsOffice | Свойства столбцов в Access sdiplo Программирование и базы данных 1 31-01-2005 09:45
ListView редактирование столбцов lesco Программирование и базы данных 2 11-04-2003 22:23




 
Переход