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

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

Ответить
Настройки темы
CMD/BAT - [решено] Замена окончания строк с CrLf на просто Lf

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


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


Конфигурация

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


Есть текстовый файл, нужно проверить в каком он формате(Win или UNIX) и если он в формате Win заменить окончания строк на Lf

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

Отправлено: 19:30, 09-11-2011

 

Ветеран


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

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


xGETSx, если устроит WSH:
Код: Выделить весь код
Option Explicit

Const ForReading = 1
Const ForWriting = 2

Dim strSourceFile
Dim strTempFile
Dim strContent


If WScript.Arguments.Count = 1 Then
	strSourceFile = WScript.Arguments.Item(0)
	strTempFile   = GetTemporaryName()
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		If .FileExists(strSourceFile) Then
			With .OpenTextFile(strSourceFile, ForReading)
				strContent = .ReadAll
				.Close
			End With
			
			With .OpenTextFile(strTempFile, ForWriting, True)
				.Write Replace(strContent, vbCrLf, vbLf)
				.Close
			End With
			
			.CopyFile strSourceFile, .BuildPath(.GetParentFolderName(strSourceFile), .GetBaseName(strSourceFile) & ".bak"), True
			.CopyFile strTempFile, strSourceFile, True
			.DeleteFile strTempFile
		Else
			WScript.Echo "File [" & strSourceFile & "] not found"
		End If
	End With
Else
	WScript.Echo "Usage: " & WScript.ScriptName & " <Path to source file>"
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
' Серый форум / vbscript: генерация пути для временного файла или папки
' (http://forum.script-coding.com/viewtopic.php?id=1221)
'=============================================================================
Function GetTemporaryName()
    Const TemporaryFolder = 2
    
    Dim strTempName
    
    With WScript.CreateObject("Scripting.FileSystemObject")
        Do
            strTempName = .BuildPath(.GetSpecialFolder(TemporaryFolder), .GetTempName)
        Loop While .FileExists(strTempName) Or .FolderExists(strTempName)
    End With
    
    GetTemporaryName = strTempName
End Function
'=============================================================================
P.S. Файл читается в память целиком, посему для гигабайтных текстовых файлов не очень годится.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:58, 10-11-2011 | #2



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

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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск, удаление, замена и добавление строк в текстового файле. Что возможно? akrav Скриптовые языки администрирования Windows 8 06-12-2015 13:22
CMD/BAT - [решено] приписка окончания к именам caustic Скриптовые языки администрирования Windows 3 20-03-2011 03:12
CMD/BAT - [решено] Замена строк конфига The_Name Скриптовые языки администрирования Windows 4 22-09-2009 11:19
[решено] В чём разница между @CR, @LF и @CRLF Twix1124 AutoIt 2 24-05-2009 22:52
окончания строка действия аккаунта xamelion Microsoft Windows NT/2000/2003 4 28-12-2006 11:23




 
Переход