 |
|
alexdomovoi |
31-05-2013 14:24 2159894 |
что бы с каждого компа в сети архивировалась раз в 2-3 дня папочка на сервер
Товарищи нужно сделать так что бы с каждого компа в сети копировалась (архивировалась) раз в 2-3 дня папочка на сервер и при этом создавалась папка не по имени компа на сервере, а по ip адресу копируемого компьютера мне вроде дали скриптик но он не работает как то, что не так:
Dim FSO, WSH, TheFolder, TheFiles, AFile
Set WSH = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
foldername = "C:\Program Files\infotecs"
zipname = "C:\temp\if.zip"
str = "c:\7-zip\7z.exe a "& zipname & " " & foldername
strComputer = "."
Return = WSH.Run(str, 0, true)
If Return = 0 Then
Set fso = createobject ("scripting.filesystemobject")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = TRUE")
For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For Each IPAddress In IPConfig.IPAddress
strOutput = Replace(IPAddress, strComputer, "")
if fso.FolderExists("\\10.72.4.8\AD\1\" & strOutput) Then
WScript.Echo "Папка уже создана"
Else
fso.createfolder "\\10.72.4.8\AD\1\" & strOutput
End If
Set TheFolder = FSO.GetFolder("C:\temp\")
Set TheFiles = TheFolder.Files
For Each AFile In TheFiles
If UCase(FSO.GetExtensionName(AFile.Path)) = "ZIP" Then
AFile.COPY "\\10.72.4.8\AD\1\" & strOutput &"\"
End If
Next
Next
End If
Next
End If
папка temp есть
папка с архиватором 7-zip так же имеется
папка с тем что копировать есть
папка куда копировать так же есть
что еще надо?
|
Код:
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\192.168.25.245\it\test
set Folder2BackUp="d:\work\"
rem !!!!!!!!!!!!!!!!!!
if exist %tmp%\%ipAddress%.zip (
del /q %tmp%\%ipAddress%.zip
)
if exist %tmp%\tmp.tmp (
del /q %tmp%\tmp.tmp
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >%tmp%\tmp.tmp
for /f "tokens=2" %%i in (%tmp%\tmp.tmp) do set ipAddress=%%i
%ZipPath% a %tmp%\%ipAddress%.zip %Folder2BackUp%
if not exist "%ServerPath%" (
md "%ServerPath%"
)
copy /y /z %tmp%\%ipAddress%.zip "%ServerPath%\"
del /q %tmp%\tmp.tmp
del /q %tmp%\%ipAddress%.zip
echo Done!
Как-то так
|
alexdomovoi |
03-06-2013 09:58 2161220 |
сделал так
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\10.72.4.8\ad\1
set Folder2BackUp="C:\Program Files\InfoTeCS\"
rem !!!!!!!!!!!!!!!!!!
if exist %tmp%\%ipAddress%.zip (
del /q %tmp%\%ipAddress%.zip
)
if exist %tmp%\tmp.tmp (
del /q %tmp%\tmp.tmp
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >%tmp%\tmp.tmp
for /f "tokens=2" %%i in (%tmp%\tmp.tmp) do set ipAddress=%%i
%ZipPath% a %tmp%\%ipAddress%.zip %Folder2BackUp%
if not exist "%ServerPath%" (
md "%ServerPath%"
)
copy /y /z %tmp%\%ipAddress%.zip "%ServerPath%\"
del /q %tmp%\tmp.tmp
del /q %tmp%\%ipAddress%.zip
echo Done!
выдает при запуске
|
alexdomovoi, Вам давно пора познакомиться с тэгом [code].
Это пакетный файл, а не скрипт WSH. Поменяйте расширение с «vbs» на «cmd». И сохраняйте в кодировке OEM/866, если используется кириллица.
|
alexdomovoi |
03-06-2013 11:59 2161302 |
в принципе работает, НО создается архив с не с именем ip адреса (допустим ip 192.168.1.1 нужно имя архива 19216811), а просто %ipAddress%.zip
а вообще было бы прерасно если бы создавалась папочка с ip адресом а уже в нее клались архивы по дате
|
alexdomovoi |
03-06-2013 13:32 2161362 |
удалил, вопрос выше остается открыт
|
Цитата:
Цитата alexdomovoi
в принципе работает, НО создается архив с не с именем ip адреса (допустим ip 192.168.1.1 нужно имя архива 19216811), а просто %ipAddress%.zip
а вообще было бы прерасно если бы создавалась папочка с ip адресом а уже в нее клались архивы по дате »
|
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\10.72.4.8\ad\1
set Folder2BackUp="C:\Program Files\InfoTeCS\"
rem !!!!!!!!!!!!!!!!!!
for /f %%i in ('date /t') do set CurDate=%%i
if exist %tmp%\%CurDate%.zip (
del /q %tmp%\%CurDate%.zip
)
if exist %tmp%\tmp.tmp (
del /q %tmp%\tmp.tmp
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >%tmp%\tmp.tmp
for /f "tokens=2" %%i in (%tmp%\tmp.tmp) do (
set ipAddress=%%i
)
set endPath=%ServerPath%\%ipAddress%
%ZipPath% a %tmp%\%CurDate%.zip %Folder2BackUp%
if not exist "%endPath%" (
md "%endPath%"
)
copy /y /z %tmp%\%CurDate%.zip "%endPath%\"
del /q %tmp%\tmp.tmp
del /q %tmp%\%CurDate%.zip
echo Done!
Создаёт на сервере папку с ip адресом, а в неё копируется архив.
З.Ы. Не забудь сохранить файл с расширением cmd
|
alexdomovoi |
03-06-2013 15:37 2161450 |
что то не так в конце
Код:
Compressing InfoTeCS\ViPNet CryptoService\vipnetln.prg
Everything is Ok
if not exist "%endPath%" (
Продолжить? "Application Data"md "%endPath%"
Продолжить? )
""Application Data"md" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
copy /y /z %tmp%\%CurDate%.zip "%endPath%\"
Системе не удается найти указанный путь.
Скопировано файлов: 0.
del /q %tmp%\tmp.tmp
del /q %tmp%\%CurDate%.zip
echo Done!
|
Цитата:
Цитата alexdomovoi
Продолжить? "Application Data"md "%endPath%"
Продолжить? ) »
|
Это откуда у тебя в скрипте? Скопируй правильно текст!
|
alexdomovoi |
04-06-2013 09:43 2161911 |
скопировал
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\10.72.4.8\ad\1\
set Folder2BackUp="C:\Program Files\InfoTeCS\"
rem !!!!!!!!!!!!!!!!!!
for /f %%i in ('date /t') do set CurDate=%%i
if exist %tmp%\%CurDate%.zip (
del /q %tmp%\%CurDate%.zip
)
if exist %tmp%\tmp.tmp (
del /q %tmp%\tmp.tmp
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >%tmp%\tmp.tmp
for /f "tokens=2" %%i in (%tmp%\tmp.tmp) do (
set ipAddress=%%i
)
set endPath=%ServerPath%\%ipAddress%
%ZipPath% a %tmp%\%CurDate%.zip %Folder2BackUp%
if not exist "%endPath%" (
md "%endPath%"
)
copy /y /z %tmp%\%CurDate%.zip "%endPath%\"
del /q %tmp%\tmp.tmp
del /q %tmp%\%CurDate%.zip
echo Done!
идет копирование из папки инфотекс
но в конце выдает
Код:
Compressing InfoTeCS\ViPNet CryptoService\user_0257\key_disk\dom\has
Compressing InfoTeCS\ViPNet CryptoService\user_0257\key_disk\dom\sgn
Compressing InfoTeCS\ViPNet CryptoService\Version.ini
Compressing InfoTeCS\ViPNet CryptoService\VIPNETLN.CRG
Compressing InfoTeCS\ViPNet CryptoService\vipnetln.prg
Everything is Ok
if not exist "%endPath%" (
Продолжить? "Application Data"md "%endPath%"
Продолжить? )
""Application Data"md" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
copy /y /z %tmp%\%CurDate%.zip "%endPath%\"
Системе не удается найти указанный путь.
Скопировано файлов: 0.
del /q %tmp%\tmp.tmp
del /q %tmp%\%CurDate%.zip
echo Done!
|
alexdomovoi, попробуйте подправить скрипт sunnykey таким образом:
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\10.72.4.8\ad\1
set Folder2BackUp="C:\Program Files\InfoTeCS\"
rem !!!!!!!!!!!!!!!!!!
for /f %%i in ('date /t') do set CurDate=%%i
if exist "%tmp%\%CurDate%.zip" (
del /q "%tmp%\%CurDate%.zip"
)
if exist "%tmp%\tmp.tmp" (
del /q "%tmp%\tmp.tmp"
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >"%tmp%\tmp.tmp"
for /f "usebackq tokens=2" %%i in ("%tmp%\tmp.tmp") do (
set ipAddress=%%i
)
set endPath=%ServerPath%\%ipAddress%
%ZipPath% a "%tmp%\%CurDate%.zip" %Folder2BackUp%
if not exist "%endPath%" (
md "%endPath%"
)
copy /y /z "%tmp%\%CurDate%.zip" "%endPath%\"
del /q "%tmp%\tmp.tmp"
del /q "%tmp%\%CurDate%.zip"
echo Done!
|
alexdomovoi |
04-06-2013 10:22 2161939 |
опять не так
Код:
Compressing InfoTeCS\ViPNet CryptoService\VIPNETLN.CRG
Compressing InfoTeCS\ViPNet CryptoService\vipnetln.prg
Everything is Ok
if not exist "%endPath%" (
Продолжить? "Application Data"md "%endPath%"
Продолжить? )
""Application Data"md" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
copy /y /z "%tmp%\%CurDate%.zip" "%endPath%\"
Системе не удается найти указанный путь.
Скопировано файлов: 0.
del /q "%tmp%\tmp.tmp"
del /q "%tmp%\%CurDate%.zip"
echo Done!
|
alexdomovoi |
04-06-2013 10:44 2161946 |
все пошло, только папочку не создалась по ip адресу
|
alexdomovoi, выложите результат выполнения в командной строке команды:
Код:
netsh interface ipv4 show addresses
.
|
alexdomovoi |
04-06-2013 11:23 2161962 |
Код:
C:\Documents and Settings\admdom>netsh interface ipv4 show addresses
Команда interface ipv4 show addresses не найдена.
машина на xp sp3
|
Тогда надо использовать альтернативную команду. Например, чтобы получился тот же реэультат, что и в предложенной sunnykey конструкции (с моей правкой)
Код:
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >"%tmp%\tmp.tmp"
for /f "usebackq tokens=2" %%i in ("%tmp%\tmp.tmp") do (
set ipAddress=%%i
)
, попробуйте вместо неё использовать конструкцию
Код:
ipconfig|find "IPv4-">"%tmp%\tmp.tmp"
for /f "usebackq tokens=2 delims=:" %%i in ("%tmp%\tmp.tmp") do (
set _ipAddress=%%i
)
set ipAddress=%_ipAddress:~1%
Можно было и обойтись без tmp.tmp.
|
alexdomovoi |
04-06-2013 14:33 2162064 |
создалась папочка вот такая ~1 в ней архивный файл, тема с ip не раскрыта.
|
alexdomovoi, теперь выложите результат выполнения в командной строке команды: .
|
alexdomovoi |
05-06-2013 08:13 2162507 |
DNS-суффикс этого подключения . . :
IP-адрес . . . . . . . . . . . . : 10.72.4.198
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 10.72.4.1
|
alexdomovoi |
06-06-2013 09:04 2163092 |
подниму подскажите
|
alexdomovoi |
07-06-2013 09:50 2163617 |
вопрос решен
On Error Resume Next
Set WshShell = CreateObject("WScript.Shell")
Set objShellApp = CreateObject("Shell.Application")
katalog = ""
if len (Month(Now))= 1 then katalog = katalog & "0" & Month(Now)
if len (Month(Now))= 2 then katalog = katalog & Month(Now)
if len (Day(Now))=1 then katalog = katalog & "0" & Day(Now)
if len (Day(Now))=2 then katalog = katalog & Day(Now)
katalog = Year(Now) & katalog
commanda = "C:\Progra~1\7-Zip\7z.exe a -tzip \\Dc2-db\copy_vipnet\%COMPUTERNAME%\" & katalog & ".zip -ssw ""C:\Program Files\InfoTeCS\"""
WshShell.Run commanda, 1, 1
|
Цитата:
Код:
if len (Month(Now))= 1 then katalog = katalog & "0" & Month(Now)
if len (Month(Now))= 2 then katalog = katalog & Month(Now)
if len (Day(Now))=1 then katalog = katalog & "0" & Day(Now)
if len (Day(Now))=2 then katalog = katalog & Day(Now)
katalog = Year(Now) & katalog
|
Можно проще:
Код:
dtNow = Now()
WScript.Echo CStr(Year(dtNow)) & Right("00" & CStr(Month(dtNow)), 2) & Right("00" & CStr(Day(dtNow)), 2)
|
alexdomovoi |
10-06-2013 10:53 2165246 |
можно только помощи так и не дождался
|
Цитата:
Цитата alexdomovoi
только помощи так и не дождался »
|
«Вы хотите поговорить об этом?» :lol:
|
Время: 22:36.
© OSzone.net 2001-