Board logo

标题: [文件操作] 批处理怎样重命名文件夹名称为IP地址+时间并上传到FTP服务器? [打印本页]

作者: 2210698653    时间: 2023-5-29 12:20     标题: 批处理怎样重命名文件夹名称为IP地址+时间并上传到FTP服务器?

重命名文件夹名称为IP地址+时间,重命名完成后上传到FTP服务器
作者: czjt1234    时间: 2023-5-29 13:49

IP地址是通过 ipconfig 命令获取?
作者: 2210698653    时间: 2023-5-29 14:10

回复 2# czjt1234


    都可以,
作者: Batcher    时间: 2023-5-29 22:57

回复 1# 2210698653


打开一个CMD窗口,执行命令:
  1. >1.txt echo %date%
  2. >>1.txt echo %time%
  3. >>1.txt ipconfig /all
复制代码
把生成的 1.txt 传上来我试试
如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: czjt1234    时间: 2023-5-31 15:32

  1. rem 另存为 ANSI 编码
  2. ' & cls & cscript.exe /nologo /e:vbscript "%~f0" %* & pause & exit
  3. folder = "D:\1"
  4. ftp    = "ftp://a:Aa12345678@192.168.0.11"
  5. If wsh.Arguments.Count > 0 Then folder = wsh.Arguments(0)
  6. Set oShell = CreateObject("Shell.Application")
  7. Set oFolder = oShell.NameSpace(ftp)
  8. Set oFSO = CreateObject("Scripting.FileSystemObject")
  9. If Not oFSO.FolderExists(folder) Then wsh.Echo "未找到文件夹" : wsh.Quit()
  10. Set oWMI = GetObject("Winmgmts:\\.\Root\Cimv2")
  11. For Each i In oWMI.InstancesOf("Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'True'")
  12.     s = i.IPAddress(0)
  13. Next
  14. s = s & "_" & F_D_T(Now(), "yyyymmdd_HHMMSS")
  15. s = oFSO.BuildPath(oFSO.GetParentFolderName(folder), s)
  16. wsh.Echo "原文件夹" & vbTab & folder
  17. wsh.Echo "重命名为" & vbTab & s
  18. wsh.Echo
  19. oFSO.MoveFolder folder, s
  20. Set oFolderItem = oShell.NameSpace(s).Self
  21. oFolder.CopyHere oFolderItem
  22. Function F_D_T(ByVal d, ByVal s)
  23.     Dim oSWbemDateTime, oWMI, i, TimeZone
  24.     Select Case UCase(s)
  25.         Case "CIM_DATETIME"
  26.             Set oSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime")
  27.             oSWbemDateTime.SetVarDate d
  28.             F_D_T = oSWbemDateTime.Value
  29.         Case "INTERVAL FORMAT"
  30.             Set oSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime")
  31.             oSWbemDateTime.SetVarDate d
  32.             oSWbemDateTime.IsInterval = True
  33.             F_D_T = oSWbemDateTime.Value
  34.         Case "FILENAME"   'UTC时间
  35.             Set oSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime")
  36.             oSWbemDateTime.SetVarDate d
  37.             F_D_T = oSWbemDateTime.GetFileTime(False)
  38.         Case "UNIX"       '10位Unix时间戳,UTC时间
  39.             Set oWMI = GetObject("Winmgmts:\\.\Root\Cimv2")
  40.             For Each i In oWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem")
  41.                 TimeZone = i.CurrentTimeZone
  42.             Next
  43.             i = DateDiff("s", #1970-01-01 00:00:00#, d)
  44.             F_D_T = i - TimeZone * 60
  45.         Case Else
  46.             s = Replace(s, "yyyy", Year(d), 1, -1, vbTextCompare)
  47.             s = Replace(s, "yy", Right(Year(d), 2), 1, -1, vbTextCompare)
  48.             s = Replace(s, "mm", Right("0" & Month(d), 2), 1, -1, vbBinaryCompare)
  49.             s = Replace(s, "m", Month(d), 1, -1, vbBinaryCompare)
  50.             s = Replace(s, "dd", Right("0" & Day(d), 2), 1, -1, vbTextCompare)
  51.             s = Replace(s, "d", Day(d), 1, -1, vbTextCompare)
  52.             s = Replace(s, "HH", Right("0" & Hour(d), 2), 1, -1, vbTextCompare)
  53.             s = Replace(s, "H", Hour(d), 1, -1, vbTextCompare)
  54.             s = Replace(s, "MM", Right("0" & Minute(d), 2), 1, -1, vbBinaryCompare)
  55.             s = Replace(s, "M", Minute(d), 1, -1, vbBinaryCompare)
  56.             s = Replace(s, "SS", Right("0" & Second(d), 2), 1, -1, vbTextCompare)
  57.             s = Replace(s, "S", Second(d), 1, -1, vbTextCompare)
  58.             F_D_T = s
  59.     End Select
  60. End Function
复制代码


请自行修改ftp
win7x64测试通过,未考虑多网卡多ip的情况
支持文件夹拖放,支持文件夹绝对路径作为批处理命令行参数




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