Имя: Пароль:
IT
Админ
Bat файл, помогите добавить строку
0 vde69
 
10.10.16
11:34
суть задачи - если файл не содержит определенную строку - надо ее добавить

вот так все нормально добавляет нужную строку
echo CommonInfoBases=%~1\bases\%USERNAME%^@%USERDOMAIN%.v8i>>%AppData%\1c\1CEStart\1CEStart.cfg

пытаюсь сделать условие типа

if not exist | find /i "CommonInfoBases=%~1\bases\%USERNAME%^@%USERDOMAIN%.v8i" %AppData%\1c\1CEStart\1CEStart.cfg echo CommonInfoBases=%~1\bases\%USERNAME%^@%USERDOMAIN%.v8i>>%AppData%\1c\1CEStart\1CEStart.cfg

но что-то не догоняю как сделать...
1 mistеr
 
10.10.16
11:41
(0) find ... || echo ...
2 Garykom
 
гуру
10.10.16
11:57
if %errorlevel% equ 1 goto
3 vde69
 
10.10.16
12:30
(2) так и буду делать...


теперь вот выяснил, что не ищет


find /i /c "CommonInfoBases=" C:\Users\Vorobyov\AppData\Roaming\1c\1CEStart\1CEStart.cfg

---------- C:\USERS\VOROBYOV\APPDATA\ROAMING\1C\1CESTART\1CESTART.CFG: 0
4 mistеr
 
10.10.16
12:44
(2) Это вариант для танкистов.
5 vde69
 
10.10.16
13:15
поиск победил, теперь запись файла с кракозябрами


как записать в UTF кодировки
6 arsik
 
гуру
10.10.16
13:24
(5) powershell используй. Там все проще делается.
7 Жан Пердежон
 
10.10.16
13:29
еще вариант

SET %FND="NO"
for /f %%i in ('findstr /I /C:"CommonInfoBases" test.bat') do echo SET %FND="OK"
if %FND%=="NO" echo CommonInfoBases>>test.bat
8 shinobufag
 
10.10.16
13:39
Прочитал как 1СЕКТАНТ.
9 mistеr
 
10.10.16
14:10
(5) chcp 65001
10 vde69
 
10.10.16
15:39
короче я не смог победить кодировки, проблема в том, что часть используют UTF-8 а часть UTF-16

сделал через

copy /b file1+file2 file1
11 mistеr
 
11.10.16
11:09
(10) Надеюсь file2 без BOM. :)
12 newbling
 
11.10.16
12:18
(5) CHCP 1251 или сколько тебе нужно
13 newbling
 
11.10.16
12:19
(10) выложи конечный разультат
14 vde69
 
12.10.16
17:41
(13) правда на машинах где не прописан параметр AppData - не работает


echo off

if not exist %AppData%\1c md %AppData%\1c >nul
if not exist %AppData%\1c\1CEStart md %AppData%\1c\1CEStart >nul

rem это файл признак спец действий
if not exist %AppData%\1c\1CEStart\1CEStart.v goto first_start

goto next_step

:first_start
del %AppData%\1c\1CEStart\ibases.v8i
del %AppData%\1c\1CEStart\1CEStart.cfg
echo 1 >%AppData%\1c\1CEStart\1CEStart.v

:next_step

if not exist %AppData%\1c\1CEStart\1CEStart.cfg copy /B %AppData%\1c\1CEStart\1CEStart.cfg+%~1\bases\%USERNAME%@%USERDOMAIN%.cfg %AppData%\1c\1CEStart\1CEStart.cfg >nul

find /i /c "CommonInfoBases=%~1\bases\%USERNAME%@%USERDOMAIN%.v8i" %AppData%\1c\1CEStart\1CEStart.cfg >nul
if %errorlevel% equ 1 copy /B %AppData%\1c\1CEStart\1CEStart.cfg+%~1\bases\%USERNAME%@%USERDOMAIN%.cfg %AppData%\1c\1CEStart\1CEStart.cfg

start %~1\bin\1cv8s.exe
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший