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

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

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

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


Сообщения: 105
Благодарности: 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

 

Старожил


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

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


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

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



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

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


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


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

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


Цитата Uragan66:
Код:
Foreach ($file in (Get-Childitem "C:\Folder\*.txt"))
{
(Get-Content $file).Trim() | where {$_ -ne ""} | Set-Content $file
} »
тоже самое.

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


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
	Set "Folder=Z:\Box_In"
	Set "Mask=*.*"
	FOR %%f IN ("%Folder%\%Mask%") DO (
		>"%%f.tmp" (FOR /F "usebackq delims=" %%s IN (`More "%%f"`) DO (
			Set "SS=%%s"
			(Call :MyOut "%%SS: =%%")
		))
		>nul Move /Y "%%f.tmp" "%%f"
	)
Exit /B

:MyOut
	(If Not %1=="" Echo %~1)
Exit /B

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

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

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


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


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

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


Цитата megaloman:
Код:
@Echo Off
Set "Folder=Z:\Box_In"
Set "Mask=*.*"
FOR %%f IN ("%Folder%\%Mask%") DO (
>"%%f.tmp" (FOR /F "usebackq delims=" %%s IN (`More "%%f"`) DO (
Set "SS=%%s"
(Call :MyOut "%%SS: =%%")
))
>nul Move /Y "%%f.tmp" "%%f"
)
Exit /B
:MyOut
(If Not %1=="" Echo %~1)
Exit /B »

остаётся так же пробел (переход на новую строку).

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


Ветеран


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

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


Цитата serg515:
остаётся пробел перехода.в некоторых строках нарушается последовательность.»
Приложите файл. У меня все отрабатывает. Или вы имеете ввиду самый последний перевод строки?

Код: Выделить весь код
foreach ($file in (Get-Childitem "C:\Folder\*.txt"))
{
    ((Get-Content $file).Trim().Split().Where{$_} | Out-String).Trim() | Set-Content $file -NoNewline
}
Это сообщение посчитали полезным следующие участники:

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


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


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

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


Цитата Foreigner:
Приложите файл. У меня все отрабатывает. Или вы имеете ввиду самый последний перевод строки? »
да.самый последний,переход на новую пустую строку.

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


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

fascinating rhythm


Moderator


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

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


Цитата serg515:
пробел (переход на следующую строку) »
Это разные вещи.

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

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

Отправлено: 16:50, 22-10-2020 | #17


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


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

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


Цитата DJ Mogarych:
Это разные вещи. »
возможно.хотя не все считают это не единым понятием,в т.ч. разработчики определённого сотфа.

Отправлено: 17:04, 22-10-2020 | #18


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

fascinating rhythm


Moderator


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

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


serg515, дело не в том, как кто считает, а в постановке задачи, когда сначала непонятно, откуда убирать пробелы, а потом оказывается, что пробелами именуются и переводы строки.

Код: Выделить весь код
dir "C:\temp\folder\*.txt" |% {(gc $_ -raw) -replace "\s+|`n" |sc $_}

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

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

Отправлено: 20:57, 22-10-2020 | #19


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


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

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


DJ Mogarych,
просто некоторые и переводы строки относят к пробелам.
шапку дополнил.

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



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




 
Переход