Показать полную графическую версию : [решено] bat файл автозамена данних
Mihail07
02-11-2021, 18:29
Здравствуйте, уважаемые форумчане. Хочу попросить Вас о помощи в написании скрипта
Попробую описать подробно задачку:
Нужно сделать bat и закинуть на флешку. Когда вставляешь флешку в компьютер, автоматически bat запускается и удаляет или заменяет в папке С:\Temp\видео все файлы mp4 (около 16 шт) и вставляет или заменяет с флешки новые файлы мр4. Название удаленных файлов и новых будет одинаковыми типа 1мр4, 2мр4, 3 мр4. Буду весьма признателен за помощь)
Когда вставляешь флешку в компьютер, автоматически bat запускается »
Забудьте. Подобное можно настроить только со стороны компьютера, но не со стороны флешки. Посему вопрос — зачем держать данный пакетный файл на флешке?
или заменяет с флешки новые файлы мр4 »
Название удаленных файлов и новых будет одинаковыми типа 1мр4, 2мр4, 3 мр4. »
Попробуйте описать задачу подробнее. Без «типа».
Mihail07
02-11-2021, 19:50
Со стороны компьютера отличное решение. На флешке есть файлы 1.mp4, 2.mp4, 3.mp4, 5.mp4, 6.mp4, 7.mp4, 8.mp4, 9.mp4, 10.mp4, 11.mp4, 12.mp4, 13.mp4, 14.mp4, 15.mp4. Эти файлы нужно копировать в С:\Temp\видео в котором находятся старие файлы с тем же названием 1.mp4, 2.mp4, 3.mp4, 5.mp4, 6.mp4, 7.mp4, 8.mp4, 9.mp4, 10.mp4, 11.mp4, 12.mp4, 13.mp4, 14.mp4, 15.mp4 их нужно удалить.
Но так, что бы это все было автоматически. Вставил флешку с файлами и они автоматически заменились на компьютере
есть контент на устройстве, 15 видеороликов каждый видеоролик имеет свое название 1.mp4, 2.mp4 и так далее. Для замены контента клиент кладет на флешку новый контент с названием 1.mp4, 2.mp4 и так далее. и таким образом компьютер заменяет файлы на новые. Я совсем не селен в написании такого рода скрипта. Буду очень благодарен за помощь!)
На флешке есть файлы »
В каком конкретно каталоге? В корневом?
Mihail07
02-11-2021, 20:07
Да, корневой каталог
Mihail07
03-11-2021, 09:53
Подобное можно настроить только со стороны компьютера »
Подскажите, где можно узнать больше информации по этому вопросу. Не могу найти.
в принципе, если не отключен автоплей, файлик авторан.инф в корне флешки может запускать батник формата
@echo off
del C:\Temp\*.mp4 /y
xcopy F:\*.mp4 C:\Temp\*.* /y
exit
Разумеется, не проверял, просто навскидку прикинул. Имя буквы диска, само собой, подставить своё. Ключи выполнять всё втихую.. не помню, давно не открывал, проверьте в синтаксисе.
Mihail07
03-11-2021, 13:49
ДА!!! Все работает. Спасибо огромное) А можете еще помочь? Нужно скрыть работу батника и после выполнения замены файлов автоматически перегрузился компьютер.
Нужно скрыть работу батника »
только через что-то другое. Напр, vbs, который запускает батник без окна.
Save the following as wscript, for instance, hidecmd.vbs after replacing "testing.bat" with your batch file's name.
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false
The second parameter of oShell.Run is intWindowStyle value indicating the appearance of the program's window and zero value is for hidden window.
The reference is here http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
и после выполнения замены файлов автоматически перегрузился компьютер. »надеюсь, это не какое-то вредительство?
shutdown.exe /r /t 00
где t - время задержки.
Mihail07
03-11-2021, 15:40
спасибо огромное за помощь!) Точно не вредительство. Разработал кастомное устройство и нужно дать пользователю возможность замены контента без лишних движений. Еще раз спасибо огромное)
файлик авторан.инф в корне флешки может запускать батник формата »
Не может. Отключили ещё в XP.
Нужно скрыть работу батника и после выполнения замены файлов автоматически перегрузился компьютер. »
А сразу можно было озвучить?
Не может. Отключили ещё в XP. »
вроде у человека работает..
мне как-то влом вспоминать, где я поназапрещал автоплеи (и реестр, и политики, и еще где-то), чтоб проверить.. Уж очень меня бесили эти выскакивающие окошки при вставке чего угодно..
bredych, не, именно AutoPlay — работает. Не работает Autorun.
Уж очень меня бесили эти выскакивающие окошки при вставке чего угодно.. »
Аналогично ;), коллега!
1. Загрузите View any installed/connected USB device on your system (https://www.nirsoft.net/utils/usb_devices_view.html) соответствующей разрядности.
2. Создайте в каталоге %ProgramFiles% каталог USBDeview.
3. Извлеките в него содержимое загруженного архива (usbdeview.zip или usbdeview-x64.zip).
4. Создайте в том же каталоге файл «RunConnected.vbs» со следующим содержимым:
Option Explicit
Dim strDrive
Dim objFSO
Dim objFile
Dim bFound
Dim strResult
Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemObjectEx
If WScript.Arguments.Named.Count = 1 Then
If WScript.Arguments.Named.Exists("Drive") Then
strDrive = WScript.Arguments.Named.Item("Drive")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.DriveExists(strDrive) Then
If objFSO.FolderExists("c:\Temp\видео") Then
bFound = False
strResult = ""
For Each objFile In objFSO.GetFolder(strDrive & "\").Files
If StrComp(objFSO.GetExtensionName(objFile.Name), "mp4", vbTextCompare) = 0 Then
objFile.Copy "c:\Temp\видео\", True
bFound = True
strResult = strResult & objFile.Name & vbCrLf
End If
Next
If bFound Then
If MsgBox("Following files are copyed:" & vbCrLf & _
"----------------------" & vbCrLf & _
strResult & _
"----------------------" & vbCrLf & vbCrLf & _
"Restart computer now?", vbQuestion + vbYesNoCancel _
) = vbYes Then
Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
objSWbemLocator.Security_.Privileges.AddAsString "SeShutdownPrivilege"
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(".", "root\cimv2")
For Each objSWbemObjectEx In objSWbemServicesEx.ExecQuery("SELECT * FROM Win32_OperatingSystem")
' Reboot here!
'objSWbemObjectEx.Reboot()
Next
Set objSWbemServicesEx = Nothing
Set objSWbemLocator = Nothing
End If
Else
WScript.Echo "Nothing of *.mp4 found on root folder of [" & strDrive & "] drive."
WScript.Quit 5
End If
Else
WScript.Echo "Not found destination folder [c:\Temp\видео]."
WScript.Quit 4
End If
Else
WScript.Echo "Not found source drive [" & strDrive & "]."
WScript.Quit 3
End If
Set objFSO = Nothing
Else
WScript.Echo "This script can't be runned manually." & vbCrLf & vbCrLf & _
"Usage: wscript.exe """ & WScript.ScriptName & """ /Drive:<drive letter>"
WScript.Quit 2
End If
Else
WScript.Echo "This script can't be runned manually." & vbCrLf & vbCrLf & _
"Usage: wscript.exe """ & WScript.ScriptName & """ /Drive:<drive letter>"
WScript.Quit 1
End If
WScript.Quit 0
5. Запустите оттуда USBDeview.exe и задайте в расширенных параметрах (\Options\Advanced Options) два следующих параметра:
https://i.imgur.com/LVODbTV.png
wscript.exe "RunConnected.vbs" /Drive:"%drive%"
При вставке флешки будет запускаться указанный скрипт WSH, проверяться наличие путей и файлов *.mp4, каковые будут копироваться с каталог-приёмник «c:\Temp\видео», после чего будет задан вопрос о перезагрузке машины (кстати, зачем?!).
6. Добавьте автоматический запуск USBDeview.exe любым удобным Вам способом.
7. После того, как отладите копирование, раскомментируйте в скрипте строку с вызовом перезагрузки, убрав перед ней знак апострофа «'»:
For Each objSWbemObjectEx In objSWbemServicesEx.ExecQuery("SELECT * FROM Win32_OperatingSystem")
' Reboot here!
'objSWbemObjectEx.Reboot()
Next
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.