|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] удалить все пустые строки, кроме самой последней |
|
CMD/BAT - [решено] удалить все пустые строки, кроме самой последней
|
Ветеран Сообщения: 542 |
Профиль | Отправить PM | Цитировать здравствуйте, есть код, он заменяет текст с одного на другой
@echo off set "word_or_frase=text1" set "replacement=text2" for %%i in ( "C:\work\fileslink.txt" "C:\work2\fileslink.txt" "C:\work3\fileslink.txt" ) do ( echo WScript.Echo^(Replace^(WScript.CreateObject^("Scripting.FileSystemObject"^).OpenTextFile^(%%i^).ReadAll^(^),"%word_or_frase%","%replacement%"^)^)>.vbs cscript //nologo .vbs| clip mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(ClipboardData.GetData("text"))&Close()"| more>%%i ) del .vbs |
|
Отправлено: 00:44, 05-01-2015 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Alexander_88, замените в коде строку
mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(ClipboardData.GetData("text"))&Close()"| more>%%i |
Отправлено: 01:18, 05-01-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 542
|
Профиль | Отправить PM | Цитировать заменил, но в конце документа, появляется пустая строка, изначально она одна, после применения батника их становится две
|
Отправлено: 01:28, 05-01-2015 | #3 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Первый раз из-за последней (лишней) пустой строки приходится писать новый код:
@echo off set "word_or_frase=text1" set "replacement=text2" for %%i in ( "C:\work\fileslink.txt" "C:\work2\fileslink.txt" "C:\work3\fileslink.txt" ) do ( mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(%%i).ReadAll(),"%word_or_frase%","%replacement%"))&Close()">.tmp type .tmp>%%i ) del.tmp& exit /b . |
Отправлено: 01:51, 05-01-2015 | #4 |
Ветеран Сообщения: 542
|
Профиль | Отправить PM | Цитировать ааа, надо было протестировать сначало(( решил сразу на документе провернуть операцию, блокнот просто стал пустым и все , удалилось все ))
а есть код, для удаления всех пустых строк, кроме последней, я бы просто отдельным батником запускал и все, только чтобы можно было несколько файлов вписать в обработку |
|
Последний раз редактировалось Alexander_88, 05-01-2015 в 10:16. Отправлено: 10:10, 05-01-2015 | #5 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Alexander_88:
Очевидно, меняли одну строку с пробелами на другую строку с пробелами? Пробелы, символы табуляции и кавычки -- "ложка дёгтя в бочку с мёдом" при использовании конструкций с "mshta" и "vbscript". Цитата Alexander_88:
Есть такой код -- перезапись через "for", только он удалит абсолютно все пустые строки, кроме последней, включая пустые строки между другими строками. Поэтому, по-моему, лучше не допустить их появление, чем потом удалять. Попробуйте ещё так: @echo off set "word_or_frase=text 1" set "replacement=text 2" for %%i in ( "C:\work\fileslink.txt" "C:\work2\fileslink.txt" "C:\work3\fileslink.txt" ) do ( mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(%%i).ReadAll(),"%word_or_frase: ="+Chr(32)+"%","%replacement: ="+Chr(32)+"%"))&Close()">.tmp type .tmp>%%i ) del .tmp& exit /b . |
||
Отправлено: 11:18, 05-01-2015 | #6 |
Ветеран Сообщения: 542
|
Профиль | Отправить PM | Цитировать также, очистил весь блокнот..
А мне как раз это подойдет, у меня список ссылок, каждая с новой строки (пустых строк в середине нету), и только 1 строка пустая в конце, потом я применяю первый на примере код, для замены текста, он все делает, но после него образуется в конце еще пустая(ые) строки, нужно их убрать, т.е. оставить только одну пустую, которая была изначально |
Отправлено: 11:32, 05-01-2015 | #7 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Alexander_88:
|
|
Отправлено: 12:04, 05-01-2015 | #8 |
Ветеран Сообщения: 542
|
Профиль | Отправить PM | Цитировать спасибо Georgio, работает
|
Отправлено: 12:43, 05-01-2015 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - удалить все файлы с раб.стола, кроме определенных ярлыков. через КД | santey007 | Скриптовые языки администрирования Windows | 29 | 04-02-2015 10:53 | |
PowerShell - [решено] удалить все пустые подпапки | firstarey | Скриптовые языки администрирования Windows | 4 | 25-07-2014 11:47 | |
2010 - [решено] Как удалить все стили (кроме по умолчанию) в ворд? | Pozia | Microsoft Office (Word, Excel, Outlook и т.д.) | 13 | 31-03-2012 19:28 | |
CMD/BAT - [решено] Удалить все файлы из папки кроме нужных | Sirimika | Скриптовые языки администрирования Windows | 16 | 12-11-2010 10:33 | |
VBS/WSH/JS - [решено] Нужно быстро (!) удалить пустые строки во всех txt-файлах из одной директории | andreton | Скриптовые языки администрирования Windows | 10 | 08-06-2010 03:39 |
|