1 (изменено: info_fin, 2016-04-01 11:16:47)

Тема: CMD/BAT: ! в пароле

Добрый день

Есть файл iplist.txt, содержащий ip адрес;логин;пароль
\\192.168.x.x;Admin;pass!word
\\192.168.x.x;Admin;password

Есть кривоватый код, который разбирает файл и пытается через net use подключиться к компу.
проблема в том, что некоторые пароли содержат ! а при чтении из файла ! выбрасывается (с другими паролями все ок)

Подскажите, как считать из файла текст с ! и подставить его в net use.


@echo off
setlocal enableextensions enabledelayedexpansion

FOR /F "tokens=* delims=" %%i in (iplist.txt) do (
set line=%%i
for /f "tokens=1 delims=;" %%a in ("!line!") do (
set ip=%%a
)
for /f "tokens=2 delims=;" %%a in ("!line!") do (
set login=%%a
)
for /f "tokens=3 delims=;" %%a in ("!line!") do (
set pass=%%a
)

NET USE !ip!\IPC$ /u:!login! !pass!
...
NET USE !ip!\IPC$ /D

)

Спасибо.

2

Re: CMD/BAT: ! в пароле


@echo off

setlocal

set "IPLIST=iplist.txt"

for /f "usebackq tokens=1,2,3 delims=;" %%a in ( "%IPLIST%" ) do (
	call :net.login "%%~a" "%%~b" "%%~c"
)

goto :EOF

:net.login
echo:address  = %~1
echo:username = %~2
echo:password = %~3
goto :EOF
( 2 * b ) || ! ( 2 * b )

3

Re: CMD/BAT: ! в пароле

СПАСИБО!

4

Re: CMD/BAT: ! в пароле

Тогда еще один вопрос
как в файле с содержимым:

Server Name            Remark

-------------------------------------------------------------------------------
\\ip1
\\ip2
...
\\ipn
The command completed successfully.

удалить первые три строки и последнюю? оставить только строки с \\...

5

Re: CMD/BAT: ! в пароле


for /f "skip=3 ...

Читайте FOR /?

( 2 * b ) || ! ( 2 * b )

6

Re: CMD/BAT: ! в пароле

info_fin пишет:

... оставить только строки с \\...



for /f "tokens=1,2* delims=;" %%a in ('type "%IPLIST%"^| findstr/b \\\\' ) do (

7

Re: CMD/BAT: ! в пароле

всем спасибо. Супер.