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

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

Ветеран


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

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


Цитата batyaPS (из скрытого текста):
Код: Выделить весь код

[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=0
Path=\\S680000FILE\MAIL\almazova_iv
»


В реальных файлах:

Код: Выделить весь код
[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=0
Path=\\S680000FILE\MAIL\almazova_iv
.

Отсюда и отсутствие первой строки.
batyaPS, просто уберите из кода пустую строку после "######################".




Цитата batyaPS:
например кириллицу в именах папок или файлов »

Данному коду кириллица в именах папок не страшна, а кириллические имена файлов и вовсе к нему не имеют отношеия, так как имена всех обрабатывемых файлов-- "profiles.ini".




Цитата batyaPS:
да, и тут пока проверял оказалось что некоторые профили настроены по ip
т.е. часть строки с ip нужно заменить по аналогии с именем
т.е. 10.11.60.16 на допустим 10.11.60.228 »

Код: Выделить весь код
@echo off

set "dir=D:\Work\583\MAIL"
set "file=profiles.ini"

:: Если нужно изменить строку, то "act=3".
:: Если нужно "отозвать" изменение, то "act=".
set act=

for /f "delims=" %%i in ('
 "2>nul dir /a-d/b/s "%dir%\%file%""
') do (
 for /f "tokens=2,4 delims=\" %%j in ('
  findstr /rc:"^Path=\\\\" "%%i"
 ') do (
  >"%%i" (
  <"%~f0" more +41
  <nul (
  set /p=Path=\\
  if defined act (
   if "%%j"=="S680000FILE" (
    set /p=S680000FILE%act%
   ) else (
    set /p=10.11.60.228
   )
  ) else (
   if "%%j"=="S680000FILE3" (
    set /p=S680000FILE
   ) else (
    set /p=10.11.60.16
   )
  )
  set /p=\MAIL\%%k
  )
  )
  )
 )

exit /b

######################
[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=0
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:20, 22-11-2014 | #16