Показать полную графическую версию : [решено] что бы с каждого компа в сети архивировалась раз в 2-3 дня папочка на сервер
alexdomovoi
31-05-2013, 14:24
Товарищи нужно сделать так что бы с каждого компа в сети копировалась (архивировалась) раз в 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 так же имеется
папка с тем что копировать есть
папка куда копировать так же есть
что еще надо?
sunnykey
03-06-2013, 07:19
@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
сделал так
@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] (http://forum.oszone.net/misc.php?do=bbcode#code).
выдает при запуске »
Это пакетный файл, а не скрипт WSH. Поменяйте расширение с «vbs» на «cmd». И сохраняйте в кодировке OEM/866, если используется кириллица.
alexdomovoi
03-06-2013, 11:59
в принципе работает, НО создается архив с не с именем ip адреса (допустим ip 192.168.1.1 нужно имя архива 19216811), а просто %ipAddress%.zip
а вообще было бы прерасно если бы создавалась папочка с ip адресом а уже в нее клались архивы по дате
alexdomovoi
03-06-2013, 13:32
удалил, вопрос выше остается открыт
sunnykey
03-06-2013, 15:23
в принципе работает, НО создается архив с не с именем 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
что то не так в конце
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!
sunnykey
04-06-2013, 02:43
Продолжить? "Application Data"md "%endPath%"
Продолжить? ) »
Это откуда у тебя в скрипте? Скопируй правильно текст!
alexdomovoi
04-06-2013, 09:43
скопировал
@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
опять не так
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
все пошло, только папочку не создалась по ip адресу
alexdomovoi, выложите результат выполнения в командной строке команды: netsh interface ipv4 show addresses.
alexdomovoi
04-06-2013, 11:23
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
создалась папочка вот такая ~1 в ней архивный файл, тема с ip не раскрыта.
alexdomovoi, теперь выложите результат выполнения в командной строке команды: ipconfig.
alexdomovoi
05-06-2013, 08:13
DNS-суффикс этого подключения . . :
IP-адрес . . . . . . . . . . . . : 10.72.4.198
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 10.72.4.1
alexdomovoi
06-06-2013, 09:04
подниму подскажите
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.