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

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

Ответить
Настройки темы
CMD/BAT - [решено] Убрать пробелы в конце каждой строки если они есть

Ветеран


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

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


Здравствуйте … Подскажите, как убрать пробелы в конце каждой строки, если они есть? Можно было конечно через notepad++ это сделать, но txt файлов слишком много.

Отправлено: 09:58, 06-11-2021

 

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

fascinating rhythm


Moderator


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

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


Powershell
Код: Выделить весь код
dir "C:\temp\123\*.txt" -recurse |% {(gc $_) -replace "\s+$" |Set-Content $_}

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

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

Отправлено: 10:16, 06-11-2021 | #2



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

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


Аватара для Elven

Ветеран


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

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


на cmd это геморно делать, а на поше сразу есть TrimEnd
Код: Выделить весь код
$files = Get-ChildItem -Path ./ -Filter *.txt

ForEach($file in $files) {
    Get-Content $file | ForEach-Object {$_.TrimEnd()} | Set-Content $file
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:47, 06-11-2021 | #3


Ветеран


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

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


DJ Mogarych, Elven, спасибо за ответы, Всё работает

Отправлено: 11:19, 06-11-2021 | #4


Ветеран


Contributor


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

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


Alexander_88,
Цитата Elven:
cmd это геморно делать »
И результат можем получить кривой.
Вот .vbs
Я ставил немного более общую задачу.
Можно указать конкретный файл для обработки, можно указать папку, при этом файлы в папке обработаются по маске. Можно создать иконку на этот скрипт на столе и в проводнике затягивать на нее группу файлов, папок, или их смесь для обработки.
Код: Выделить весь код
FileFolderIn = "Z:\Box_In\файл с пробелами в конце строки.txt" 	'Будет обрабатываться этот файл или папка если в аргументах не будет иного.
''''''''''''FileFolderIn = "Z:\Box_In"					'Будет обрабатываться этот файл или папка если в аргументах не будет иного.
Mask = "^.*\.txt$"          					'Если в обработке будет папка, будут обрабатываться файлы по маске

Set FSO = CreateObject("Scripting.FileSystemObject")

With WScript.Arguments
    If .Count > 0 Then
        For iItem = 0 To .Count - 1
            If FSO.FolderExists(.Item(iItem)) Then
                Call ViewFolder(FSO, .Item(iItem), Mask)
            Else
                e = RTrimFile(FSO, .Item(iItem))
            End If
        Next
    Else
            If FSO.FolderExists(FileFolderIn) Then
                Call ViewFolder(FSO, FileFolderIn, Mask)
            Else
                e = RTrimFile(FSO, FileFolderIn)
            End If
    End If
End With

'''''''''''''''End Sub
Sub ViewFolder(FSO, FolName, Mask)
    Set Fld = FSO.GetFolder(FolName)
    With CreateObject("VBScript.RegExp")
        .IgnoreCase = True
        .Global = True
        .Pattern = Mask

        For Each FName In Fld.Files
            If .Test(FName) Then
                e = RTrimFile(FSO, FName)
            End If
        Next
    End With
End Sub

Function RTrimFile(FSO, FName)
    RTrimFile = 0
    With FSO
        If Not .FileExists(FName) Then
            MsgBox "File: " + vbCrLf + FName + vbCrLf + "not exists", 48, "File not exists"
            RTrimFile = 1
            Exit Function
        End If
        With .OpenTextFile(FName, 1)
            On Error Resume Next
            AllTxt = .ReadAll
            If Err.Number <> 0 Then
                MsgBox "File: " + vbCrLf + FName + vbCrLf + Err.Description, 48, "Error Reading File"
                RTrimFile = 2
                .Close
                On Error GoTo 0
                Exit Function
            End If
            .Close
            AllTxt = Split(AllTxt, vbCrLf)
            N1 = LBound(AllTxt)
            N2 = UBound(AllTxt)
            
            NN = N1 - 1
            For i = N1 To N2
                AllTxt(i) = RTrim(AllTxt(i))
                If Len(AllTxt(i)) <> 0 Then NN = i
            Next
        End With
        
        With .OpenTextFile(FName, 2)
            For i = N1 To NN
                .WriteLine AllTxt(i)
            Next
            .Close
        End With
    
    End With
    RTrimFile = 0
End Function

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


Последний раз редактировалось megaloman, 06-11-2021 в 18:00.

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

Отправлено: 17:24, 06-11-2021 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2003/XP/2000 - Удалить в конце текста знаки абзаца, пробелы sereja.Laz Microsoft Office (Word, Excel, Outlook и т.д.) 1 21-11-2014 16:16
Офис и Текст - Как убрать заданное количество символов на начале каждой строки KooDI Программное обеспечение Windows 2 03-03-2013 21:32
2007 - [решено] MS Word. Автоматическая вставка символов в конце каждой строки kirill1994200 Microsoft Office (Word, Excel, Outlook и т.д.) 6 01-10-2012 06:38
CMD/BAT - [решено] Как убрать пробел в конце строки Tjmike Скриптовые языки администрирования Windows 2 11-02-2009 09:34
[решено] Работа из командной строки | Убрать все пробелы в текстовом файле Greyman Хочу все знать 11 17-06-2007 22:44




 
Переход