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

Компьютерный форум 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

 

Ветеран


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

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


Цитата serg515:
но где-то в нём ошибка..?? »
Одна большая ошибка — в использовании пакетного файла.

Пользуйте WSH/PoSH.
Это сообщение посчитали полезным следующие участники:

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



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

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


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Цитата serg515:
Нужно удалить все пробелы »
Откуда? Из имён файлов или из их содержимого?

Из имён можно так (powershell):
Код: Выделить весь код
dir "C:\temp\folder\*.txt" |% {ren $_.FullName -NewName $($_.Name -replace "\s+")}
Из содержимого - так:
Код: Выделить весь код
dir "C:\temp\folder\*.txt" |% {(gc $_) -replace "\s+" |sc $_}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 21-10-2020 в 22:47.


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


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


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

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


К сожалению ни один из вариантов ,не удаляет пробел (переход на следующую строку).

Отправлено: 12:28, 22-10-2020 | #4


Ветеран


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

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


Цитата serg515:
не удаляет пробел (переход на следующую строку). »
Все содержимое в каждом файле надо без пробелов в одну строку?
Код: Выделить весь код
foreach ($file in (Get-Childitem "C:\Folder\*.txt"))
{
    -join (Get-Content $file).Split() | Set-Content $file
}

Отправлено: 12:56, 22-10-2020 | #5


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


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

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


Цитата Foreigner:
foreach ($file in (Get-Childitem "C:\Folder\*.txt"))
{
-join (Get-Content $file).Split() | Set-Content $file
} »
пробел текст пробел
пробел текст пробел
пробел текст пробел
пробел

надо:

текст
текст
текст

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


Ветеран


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

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


Цитата serg515:
надо: »
Уберите оператор -join
Код: Выделить весь код
foreach ($file in (Get-Childitem "C:\Folder\*.txt"))
{
    (Get-Content $file).Split().Where{ $_ } | Set-Content $file
}

Последний раз редактировалось Foreigner, 22-10-2020 в 13:37.


Отправлено: 13:27, 22-10-2020 | #7


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


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

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


Цитата Foreigner:
Уберите оператор -join
Код:
foreach ($file in (Get-Childitem "C:\Folder\*.txt"))
{
(Get-Content $file).Split().Where{ $_ } | Set-Content $file
} »
не меняется.только в некоторых файлах в начале пробелы появляются.

Отправлено: 13:52, 22-10-2020 | #8


Ветеран


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

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


Цитата serg515:
не меняется.только в некоторых файлах в начале пробелы появляются. »
Извиняюсь, неправильно понял:
Код: Выделить весь код
foreach ($file in (Get-Childitem "C:\Folder\*.txt"))
{
    (Get-Content $file).Trim().Split().Where{ $_ } | Set-Content $file
}

Отправлено: 14:13, 22-10-2020 | #9


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


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

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


Цитата Foreigner:
foreach ($file in (Get-Childitem "C:\Folder\*.txt"))
{
(Get-Content $file).Trim().Split().Where{ $_ } | Set-Content $file
} »
остаётся пробел перехода.в некоторых строках нарушается последовательность.

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



Компьютерный форум 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




 
Переход