|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автоматическое определение буквы флешки |
|
CMD/BAT - [решено] Автоматическое определение буквы флешки
|
Новый участник Сообщения: 7 |
Профиль | Отправить PM | Цитировать Уважаемые форумчане. Помогите решить задачу. Для автоматизации рутинной ежедневной задачи используется bat файл.
Одна из задач - копирование определенных файлов на флешку. Задача выполняется на абсолютно разных компьютерах. Соответственно буква диска каждый раз разная. Сейчас используется так Каждый раз букву диска необходимо ввести с клавиатуры (например F). Можно ли определить флешку по наличию определенных файлов/папок? |
|
Отправлено: 20:51, 18-07-2019 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата crazydog:
|
|
Отправлено: 22:02, 18-07-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 22:27, 18-07-2019 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Не совсем тот ответ, которого я ожидал, но я Вас понял.
У Вас есть машины, есть некий каталог на этих машинах, в этом каталоге будет располагаться пакетный файл с указанным кодом, исполняя который произвольным образом, Вы хотите добиться того, чтобы не требовалось указывать букву раздела флэш-накопителя, так? Тогда, да, можно, например, использовать: Цитата crazydog:
Тупо ориентируемся на некий каталог и файл в нём на одном или нескольких флэш-накопителях (для реального применения уберите echo): @echo off setlocal enableextensions enabledelayedexpansion set sPath2File=\0075\Sample.txt for /f "usebackq delims=" %%i in ( `2^>nul "wmic.exe" LogicalDisk where "DriveType = 2 AND MediaType = null" get DeviceID /value ^| find.exe /i "DeviceID"` ) do for /f "usebackq delims=" %%j in ('%%i') do ( set "s%%j" if defined sDeviceID if exist "!sDeviceID!%sPath2File%" echo xcopy.exe "%~dp0REPORT\*.*" "!sDeviceID!\REPORT\" /H /R /K /Y ) endlocal exit /b 0 |
|
Отправлено: 23:15, 18-07-2019 | #4 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Вот простой и надёжный вариант.
@echo off Title .NET Framework 3.5 Offline Installer for %%I in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist "%%I:\\sources\install.wim" set setupdrv=%%I if defined setupdrv ( echo Found drive %setupdrv% echo Installing .NET Framework 3.5... Dism /online /enable-feature /featurename:NetFX3 /All /Source:%setupdrv%:\sources\sxs /LimitAccess echo. echo .NET Framework 3.5 should be installed echo. ) else ( echo No installation media found! echo Insert DVD or USB flash drive and run this file once again. echo. ) pause |
|
Отправлено: 08:05, 19-07-2019 | #5 |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать Или более надежный вариант - забить на копирование на флешку и скриптом копировать данные на какой-нибудь дропбокс, гуглодиск или onedrive. И\или архивировать и почтой самому себе слать.
Бэкап на флешке это не бэкап, это чертишо потому что флешки это расходник и мрут как мухи в самый неподходящий момент. |
Отправлено: 09:07, 19-07-2019 | #6 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Цитата Iska:
@Echo Off cls Set "From=%~dp0Report\*.*" Set "To=\Report\" Set /A Nflash=0, NflashTo=0 FOR /F "usebackq tokens=1 skip=1 delims=:" %%i IN (`"wmic logicaldisk where drivetype="2" get caption | FINDSTR /R /C:"[A-Z]""`) DO ( Set /A Nflash+=1 If Exist "%%i:\%To%" ( Set /A NflashTo+=1 Xcopy "%From%" "%%i:\%To%" /H /R /K /Y /F ) ) If %Nflash%==0 (Echo !!! Flash drives not found &Pause &Exit /B 2) If %NflashTo%==0 (Echo !!! Flash drives with "%To%" not found &Pause &Exit /B 2) pause Exit /B Не проверял, но, помнится, с внешним USB HDD работать не будет (там drivetype="5") |
|
------- Последний раз редактировалось megaloman, 19-07-2019 в 10:16. Отправлено: 10:07, 19-07-2019 | #7 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Charg:
1. На компьютерах у клиентов запрещено устанавливать софт 2. Не у всех есть интернет (либо правила информационной безопасности) Всем спасибо за обсуждение, ответ с №7 посчитал самым оптимальным. (№4 тоже хороший вариант) |
|
Отправлено: 15:05, 19-07-2019 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - автоматическое определение медиаданных | aka_smile | Microsoft Windows 10 | 3 | 17-04-2018 07:20 | |
VBS/WSH/JS - Автоматическое определение Сетевой карты | O L E G | Скриптовые языки администрирования Windows | 0 | 26-04-2012 10:25 | |
Интернет - IE не получает автоматическое определение прокси | olann | Microsoft Windows 2000/XP | 5 | 20-10-2010 13:39 | |
[решено] автоматическое определение модели принтера | nigra | Microsoft Windows NT/2000/2003 | 4 | 02-12-2009 14:39 | |
Службы - Автоматическое назначение буквы диску | paul69 | Microsoft Windows 2000/XP | 1 | 21-02-2008 16:08 |
|