Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Забанен


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

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


И отчего уверенность в том, что все начнется с WSH, но в итоге будет подведено к bat, не покадала меня с самого начала?

Iska, в идеале вообще было бы здорово отказаться от архаичного WSH, в пользу какого-нибудь интерпретируемого языка или технологии вроде NodeJS. Последний, к слову, в виду своей переносимости и единофайловой сущности (один единственный экзешник) для операций чтения\записи с\на диск(а)? очень даже ничего. Однако, в виду штатности PowerShell (начиная с Win7) проще использовать последний, ибо решением будет нечто вроде:
Код: Выделить весь код
(Get-Content file.txt).ToCharArray() | Out-File file.txt -Encoding Default
angel_lyucifer, как заметин Iska, Vim не является штатным текстовым процессором, поэтому если у Вас возникло желание воспользоваться приведенным решением, нужно позаботиться прежде об установке\сборке из исходников Vim самостоятельно. От себя же могу добавить еще несколько примеров решения Вашей задачи. Например, grep (есть порт под Windows):
Код: Выделить весь код
grep -o . file.txt > tmp.txt
move /y tmp.txt file.txt
Или сам командный язык Windows:
Код: Выделить весь код
@echo off
  setlocal enabledelayedexpansion
    set "i=0"
    @<file.txt (for /f "delims=" %%i in ('more') do set "s=%%i")
    :loop
      set "c=!s:~%i%,1!"
      if /i "!c!" neq "" echo.!c!>>file.txt:s&set /a "i+=1"&goto:loop
    more < file.txt:s > foo
  endlocal
exit /b
Вообще, решений у задачи великое множество, в том числе и штатными средствами, доступными практически в каждой версии Windows. Личным же выбором в данном случае был бы Vim или Perl.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:36, 01-06-2017 | #9