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

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

Ответить
Настройки темы
CMD/BAT - Удаление всех пробельных символов в текстовых файлах.

Пользователь


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

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


Изменения
Автор: serg515
Дата: 22-10-2020
Вложения
Тип файла: zip blanks.zip
(331 байт, 5 просмотров)
Нужно удалить все пробелы + возможный перевод каретки и в некоторых случаях переносы строк(так как, кое-где это тоже самое).
Есть большое количество текстовых файлов с пробелами в папке.
Нужно удалить все пробелы и т.д. из содержимого.
т.е.

пробел текст пробел текст пробел
пробел текст пробел текст пробел
пробел текст пробел текст пробел
пробел текст пробел текст пробел
пробел

надо:

текст
текст
текст
текст
здесь строка не пустая,её просто нет,точнее не должно быть.

Есть код:
Код: Выделить весь код
setlocal EnableDelayedExpansion
set folder=,\fld\
for %%i in (%folder%*) do call :del_blanks %folder% %%i
exit /b

:del_blanks
ren %1%2 file.tmp
for /f "tokens=*" %%i in (%1file.tmp) do @set ss=%%i & echo! ss: =!>> %1%2
del %1file.tmp
exit /b
но где-то в нём ошибка..??

Отправлено: 19:52, 21-10-2020

 

Ветеран


Contributor


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

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


.vbs скрипт
Код: Выделить весь код
MyDir = "Z:\Box_In"
MyMask = "^.*\..*$"

Set Reg = CreateObject("VBScript.RegExp")
Reg.IgnoreCase = True
Reg.Pattern = MyMask

With CreateObject("Scripting.FileSystemObject")
    Set Files = .GetFolder(MyDir).Files

    For Each File In Files
        Filename = File.Path
        If Reg.Test(Filename) Then
            
            Set fIn = .OpenTextFile(Filename, 1, False)
            On Error Resume Next
            Err.Number = 0
            InTxt = fIn.ReadAll
            
            If Err.Number = 0 Then
                fIn.Close
                InTxt = Replace(InTxt, " ", "")
                Mas = Split(InTxt, vbCrLf)
                
                iMax = -1
                For i = UBound(Mas) To LBound(Mas) Step -1
                    If Len(Mas(i)) <> 0 Then
                        iMax = i
                        Exit For
                    End If
                Next
                Set fIn = .CreateTextFile(Filename, True)
                fIn.Close
                
                Set fIn = .OpenTextFile(Filename, 8, False)
                If iMax >= 0 Then
                    For i = LBound(Mas) To iMax
                        If Len(Mas(i)) <> 0 Then
                            If i <> iMax Then
                                fIn.WriteLine Mas(i)
                            Else
                                fIn.Write Mas(i)
                            End If
                        End If
                    Next
                End If
                fIn.Close
            Else
                fIn.Close
            End If
            On Error GoTo 0
        End If
    Next
End With

MsgBox "Done"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 22:37, 22-10-2020 | #21



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

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


Забанен


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

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


Цитата serg515:
просто некоторые и переводы строки относят к пробелам.
Кто например? Может вы путаете BRE [:space:] с пробелами?
Код: Выделить весь код
sed -i.bak "s/[[:space:]]/\n/g" *.txt
Только вот тогда нужно иметь в виду, что POSIX [:space:] на самом деле BRE представление ASCII [ \t\r\n\v\f] (или в краткой записи - \s). В переводе на матерный русский это означает, что в том же ASCII пробел кодируется 32 чаром, а управляющая последовательность \n - 10.

Последний раз редактировалось greg zakharov, 22-10-2020 в 23:33.


Отправлено: 23:25, 22-10-2020 | #22


Пользователь


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

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


Цитата greg zakharov:
Кто например? Может вы путаете BRE [:space:] с пробелами?
К »
например..
есть такой программный продукт zennoposter, там фичя,удаление пробелов.
так вот там удаление происходит, вместе с переводом строк.

Отправлено: 13:02, 23-10-2020 | #23


Ветеран


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

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


Может проще уже консольную утилиту написать?

Код: Выделить весь код
type вашфайл.txt | мояутилита.exe >идеальный_файл.txt

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 16:46, 23-10-2020 | #24


Пользователь


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

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


Цитата megaloman:
что не устроило в vbs- скрипте? Там вроде бы учтены все пожелания и не надо никаких добавочных средств. »
ваш скрипт сработал нормально.спс.

Отправлено: 16:02, 24-10-2020 | #25



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удалить строку с ключевым набором символов во всех файлах в папке и всех подпапках. BerryMOR Скриптовые языки администрирования Windows 6 20-06-2019 18:26
CMD/BAT - [решено] удаление части строк из всех текстовых файлов в папке icq99999999 Скриптовые языки администрирования Windows 4 06-11-2013 07:19
CMD/BAT - Удалить определенные строки в текстовых файлах Seryoga204 Скриптовые языки администрирования Windows 0 05-08-2012 14:53
Любой язык - удаление всех символов кроме шаблона gendalf Скриптовые языки администрирования Windows 3 19-07-2012 16:21
Сортировщик строк в текстовых файлах. borison Программное обеспечение Windows 2 04-02-2007 10:22




 
Переход