Board logo

标题: [文件操作] 如果用bat判断远程共享的文件夹是否存在? [打印本页]

作者: 追风之风    时间: 2014-8-7 11:38     标题: 如果用bat判断远程共享的文件夹是否存在?

小弟想用bat判断远程共享的文件夹是否存在,如果存在的话就执行一个函数,如果不存在就输出一句话。
下面是小弟写的一个bat,但是没有达到效果,请大家指教。
  1. @echo off
  2. REM 下面是远程服务器的连接信息ip、用户名、密码和数据库共享文件的名称
  3. set RemoteServerIp=192.168.1.103
  4. set RemoteServerUser=lf
  5. set RemoteServerPasswd=123456
  6. REM 共享文件
  7. set RemoteServerDir=DbBcakup
  8. if exist \\%RemoteServerIp%\%RemoteServerDir% (goto  auto_bak)  else echo "not exist!!"
  9. :auto_bak
  10. REM 开始远程复制到备份服务器上,需要将冗余服务器的文件夹共享出来。
  11. net use \\%RemoteServerIp%\ipc$ "%RemoteServerPasswd%" /user:"%RemoteServerUser%"
  12. xcopy E:\database.rar \\%RemoteServerIp%\%RemoteServerDir%\ /y
  13. net use \\%RemoteServerIp%\ipc$ /delete
  14. echo "bbb"
  15. GOTO :EOF
复制代码
发现无论是否存在if exist \\%RemoteServerIp%\%RemoteServerDir%,总会执行echo "bbb",且如果我修改成不存在的ip地址,还是会判断net use链接情况,
下面是执行不存在ip结果
E:\>windows-mysql-webschool-backup2.bat
发生系统错误 67。
找不到网络名。
无效驱动器规格
复制了 0 个文件
找不到网络连接。
请键入 NET HELPMSG 2250 以获得更多的帮助。
"bbb"

请大家指教下~~~~~~~
作者: CrLf    时间: 2014-8-7 16:15

试试 dir 或者 pushd 行吗?
作者: 追风之风    时间: 2014-8-7 17:33

回复 2# CrLf

用if dir的判断,好像是vb的程序,放在bat中不支持啊。
    @echo off

REM 下面是远程服务器的连接信息ip、用户名、密码和数据库共享文件的名称
set RemoteServerIp=192.168.1.103
set RemoteServerUser=lf
set RemoteServerPasswd=123456

REM 共享文件
set RemoteServerDir=DbBcakup
if Dir("\\%RemoteServerIp%\%RemoteServerDir%“,vbDirectory) = "" Then
echo \\%RemoteServerIp%\%RemoteServerDir% 不存在.
else
goto auto_bak
endif

:auto_bak
REM 开始远程复制到备份服务器上,需要将冗余服务器的文件夹共享出来。
net use \\%RemoteServerIp%\ipc$ "%RemoteServerPasswd%" /user:"%RemoteServerUser%"
xcopy E:\database.rar \\%RemoteServerIp%\%RemoteServerDir%\ /y
net use \\%RemoteServerIp%\ipc$ /delete
echo "bbb"

报错了:
D:\>windows-mysql-webschool-backup.bat
此时不应有 vbDirectory)。
作者: CrLf    时间: 2014-8-7 17:47

举俩例子:
  1. dir /ad "\\%RemoteServerIp%\%RemoteServerDir%" >nul 2>nul && echo 存在 || echo 不存在
复制代码
  1. pushd "\\%RemoteServerIp%\%RemoteServerDir%" 2>nul &&(popd&echo 存在)||echo 不存在
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2