找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31598|回复: 3

[文件操作] 如果用bat判断远程共享的文件夹是否存在?

[复制链接]
发表于 2014-8-7 11:38:17 | 显示全部楼层 |阅读模式
小弟想用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"

请大家指教下~~~~~~~
发表于 2014-8-7 16:15:44 | 显示全部楼层
试试 dir 或者 pushd 行吗?
 楼主| 发表于 2014-8-7 17:33:24 | 显示全部楼层
回复 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)。
发表于 2014-8-7 17:47:54 | 显示全部楼层
举俩例子:
  1. dir /ad "\\%RemoteServerIp%\%RemoteServerDir%" >nul 2>nul && echo 存在 || echo 不存在
复制代码
  1. pushd "\\%RemoteServerIp%\%RemoteServerDir%" 2>nul &&(popd&echo 存在)||echo 不存在
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 07:27 , Processed in 0.029692 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表