|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - исправить кодировку при вставке строки |
|
CMD/BAT - исправить кодировку при вставке строки
|
Ветеран Сообщения: 508 |
всем привет.
друзья, есть файл (см вложение) в кодировке UCS-2 LE BOM есть простой батник после того, как строка добавляется, она не читается. как исправить ситуацию? |
|
Отправлено: 17:54, 09-03-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:16, 09-03-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Вот примерная болванка на WSH (не знаю, зачем там две пустые строки предварительно добавлять, но, коль Вы так написали…):
Скрытый текст
Option Explicit Const ForReading = 1 Const ForAppending = 8 Const TristateTrue = -1 Dim strPattern Dim strSourceFile Dim strContent strPattern = "CommonCfgLocation=\\SQLSERVER\Common1C\1CESCmn.cfg" strSourceFile = WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%AppData%\1C\1CEStart\1CEStart.cfg") With WScript.CreateObject("Scripting.FileSystemObject") If .FileExists(strSourceFile) Then With .OpenTextFile(strSourceFile, ForReading, False, TristateTrue) strContent = .ReadAll() .Close End With If Not InStr(1, strContent, strPattern, vbTextCompare) > 0 Then With .OpenTextFile(strSourceFile, ForAppending, False, TristateTrue) .WriteBlankLines 2 .WriteLine strPattern .Close End With End If Else WScript.Echo "Can't find source file [" & strSourceFile & "]." WScript.Quit 1 End If End With WScript.Quit 0 |
Отправлено: 18:36, 09-03-2017 | #3 |
Ветеран Сообщения: 508
|
Профиль | Отправить PM | Цитировать добавил файл.
хотелось бы с помощью батника, т.к. будет распространятся с помощью ГП и добавится в уже существующий start.bat. |
Отправлено: 08:52, 10-03-2017 | #4 |
Ветеран Сообщения: 508
|
Профиль | Отправить PM | Цитировать написал на поше
результат тот же - вставляет иероглифы. |
|
Отправлено: 14:20, 10-03-2017 | #5 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать если bat в 866 и файл потом читать в 866й, то cmd сможет разве это:
@echo off set "f=1CEStart.txt" set "sword=CommonCfgLocation=\\SQLSERVER\Common1C\1CESCmn.cfg" >>$ ( <"%f%">nul find /i "%sword%" || ( more "%f%" echo. echo. echo %sword% ) )& move $ "%f%" exit А чем на vbs что Iska написал не устраивает, он же есть в системе, ничего устанавливать не нужно. |
Отправлено: 14:37, 10-03-2017 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата chek:
Цитата chek:
Кого «осенила» «светлая» идея дать пакетному файлу имя одной из внутренних команд командного процессора?! ![]() Цитата chek:
Не нравится чем-то вышеприведённый WSH — держите аналогичный на PoSH: Скрытый текст
$sPattern = 'CommonCfgLocation=\\SQLSERVER\Common1C\1CESCmn.cfg' $sSourceFile = "$($env:AppData)\1C\1CEStart\1CEStart.cfg" if(Test-Path -Path $sSourceFile -PathType Leaf) { if(-not (Select-String -Path $sSourceFile -Encoding unicode -Pattern $sPattern -SimpleMatch -Quiet)) { Add-Content -Path $sSourceFile -Encoding Unicode -Value "`r`n`r`n$sPattern" } } else { Write-Host "Can't find source file [$sSourceFile]." -ForegroundColor Red } |
|||
Отправлено: 14:52, 10-03-2017 | #7 |
Ветеран Сообщения: 508
|
Профиль | Отправить PM | Цитировать Цитата alpap:
немного видоизменил скрипт $ma = Get-Item $env:APPDATA\1C\1CEStart\1CEStart.cfg | Get-Content $tt = "SQLSERVER\\Common1C\\1CESCmn.cfg" if ($ma -match $tt) {} else { $tt | Out-File $env:APPDATA\1C\1CEStart\1CEStart.cfg -Encoding utf8 -Append } Цитата alpap:
|
||
Отправлено: 15:00, 10-03-2017 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата chek:
P.S. И, ради бога, переименуйте start.bat в какое-нибудь другое имя. |
|
Отправлено: 15:12, 10-03-2017 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Delphi - Исправить кодировку (Delphi 7) | hmudblpx | Программирование и базы данных | 0 | 19-01-2014 23:47 | |
VBS/WSH/JS - Отсекание части строки при вставке в таблицу Sql Server. VBS | LilLoco | Программирование и базы данных | 0 | 20-11-2012 12:11 | |
Как определить кодировку строки передаваемой как значение параметра OLE-серверу Excel | RUVATA | AutoIt | 12 | 13-12-2010 23:22 | |
Интернет - Как исправить сообщение верхней строки Internet Explorera | serg_55 | Microsoft Windows 2000/XP | 2 | 03-11-2007 11:45 |
|