[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] [上传了rsync.exe]批处理使用rsync.exe的问题,求解。

本帖最后由 missll 于 2014-3-5 16:25 编辑

rsync.exe 官网下载:https://www.itefix.no/i2/content/cwrsync-free-edition
  1. for /f "tokens=1" %%i in (1.txt) do (
  2. rsync.exe %%i::)
复制代码
我使用批处理从一文本中获取出IP地址来使用rsync.exe %%i::命令来链接服务器 列出的结果如下。


E:\3.1.0>for /F "tokens=1" %i in (1.txt) do (rsync.exe %i:: )
E:\3.1.0>(rsync.exe 124.248.39.26:: )
E:\3.1.0>(rsync.exe 124.248.32.26:: )
new27                 
0.8                   
www                   
E:\3.1.0>(rsync.exe 124.248.32.112:: )
E:\3.1.0>(rsync.exe 124.248.32.221:: )
image
union                  linuxsir tmp
E:\3.1.0>(rsync.exe 124.248.34.88:: )
E:\3.1.0>(rsync.exe 124.248.35.198:: )
++++++++++++++++++++++++++++++++++++++++++++
++++++++3dzhimo rsyncd service++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++
3dzhimo                3dzhimo
3dzhimodb              3dzhimo

E:\3.1.0>(rsync.exe 124.248.34.227:: )

能链接的会显示出目录来 不能链接的什么都不显示, 我想把可以链接的IP地址和目录保存到文本中,但是我无法判断链接成功和失败的区别

请问各位大神 如何解决呢? 有没有成品的批处理  或者指点一二。。。。
花开不问月,不语笑红尘.

回复 1# missll
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1" %%i in (1.txt) do (
  3. rsync %%i:: | findstr ".*" >nul
  4. if !errorlevel! equ 0  echo,%%i & rsync %%i::
  5. )>>IP.TXT
  6. pause
复制代码
这是补全了的代码,应该能满足你的要求了
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

但是我无法判断链接成功和失败的区别----------返回的字符串,或者空来判断即可呀。
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

回复 4# missll
  1. @echo off
  2. (for /f "tokens=1" %%i in (1.txt) do (
  3.     rsync.exe %%i::
  4.     if errorlevel 1 (
  5.         >>3.txt echo %%i
  6.     )
  7. ))>2.txt 2>&1
  8. findstr /v /x /g:3.txt 2.txt >结果.txt
复制代码
试试这样行不行

TOP

回复 6# missll


    你不是说 errorlevel 不管成功失败都是 0 吗?

TOP

回复  missll 运行这个代码,把 2.txt 的内容发出来看看。
DAIC 发表于 2014-3-5 16:42



    你好,感谢你的回复,我修改了一下 ivor 帮助我写的 目前可以实现想到的功能了 虽然麻烦了一点。。。
花开不问月,不语笑红尘.

TOP

回复 4# missll
  1. @echo off
  2. (for /f "tokens=1" %%i in (1.txt) do (
  3.     rsync.exe %%i::
  4. ))>2.txt 2>&1
复制代码
运行这个代码,把 2.txt 的内容发出来看看。

TOP

本帖最后由 missll 于 2014-3-5 16:48 编辑
你试试
ivor 发表于 2014-3-5 16:14



if !errorlevel! equ "0" (echo %%i)>ip.txt

测试了下这样不能输出文本 我修改了一下

if !errorlevel! ==0 echo %%i>>ip.txt

先把可链接的地址输入IP.TXT 然后再次执行

for /f "tokens=1" %%i in (ip.txt) do (
echo %%i >>xxx.txt
rsync %%i:: >>xxx.txt)

这样就可以显示IP 地址 和目录了。 分了2步来操作。 麻烦点 但是也可以解决问题。


感谢你的回复。。。。。。。。。。。。。
花开不问月,不语笑红尘.

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1" %%i in (1.txt) do (
  3. rsync %%i:: | findstr ".*"
  4. if !errorlevel! equ "0" (echo %%i)>ip.txt
  5. )
复制代码
你试试
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

能不能吧rsync.exe 传上来
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

返回列表