|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - поиск файла. |
|
CMD/BAT - поиск файла.
|
Новый участник Сообщения: 5 |
нужно чтобы batник искал файл 123456.exe на диске С.
как это написать? |
|
Отправлено: 00:00, 26-08-2010 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Ребята помогите пожалуйста!
Следующая задача: 1. Найти значение в реестре (переменная среды) и если она существует, то запустить Google Chrome 2. Если ее нет, то найти exe-шник google chrome и записать его путь в значение переменной, чтобы обращаться к ней для последующего запуска хрома Все это необходимо для запуска хрома с определенными параметрами! вот код, который работает на некоторых компах, а на некоторых нет @echo off rmdir c:\GoogleChrome\ERK_Cache\ /s /q mkdir c:\GoogleChrome\ERK_Cache\ set errorlevel=0 For /F "Tokens=2*" %%I In ('Reg Query "HKCU\Environment" /V PATH_CHROME') Do Set PATH_CHROME=%%I if %PATH_CHROME% == REG.EXE goto RegAdding cd %PATH_CHROME% start chrome.exe --disk-cache-size=274258963 --app= --disk-cache-dir="c:\GoogleChrome\Cache" goto end :RegAdding set PATH_CHROME= for /f "tokens=*" %%a in ('Dir /b/s/a-d C:\chrome.exe') do set PATH_CHROME=%%a reg add HKCU\Environment /v PATH_CHROME /t REG_SZ /d "%PATH_CHROME%" /f cd %PATH_CHROME% start chrome.exe --disk-cache-size=274258963 --app= --disk-cache-dir="c:\GoogleChrome\Cache" :end PS.: если будут идеи как легче или лучше организовать, буду всеми руками и ногами за них, спасибо!!! Добрый день! Необходимо найти exe файл и добавить в переменную значение пути к нем данный код добавляет и chrome.exe в значение переменной, что выдает ошибку при дальнейшем запуске, как убрать это оттуда for /f "tokens=*" %%a in ('Dir /b/s/a-d C:\chrome.exe') do set PATH_CHROME=%%a Спасибо! for /f "tokens=*" %%a in ('Dir/b/s/a-d C:\chrome.exe') do set PATH_CHROME=%%a Находит файл, но записывает к нему в в конце c:\Documents and Settings\.....\chrome.exe, как убрать, т.к. не находит правильный путь |
Последний раз редактировалось Petya V4sechkin, 13-03-2013 в 16:12. Отправлено: 14:14, 13-03-2013 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Продолжая тему. нужно дописать в конфиг файл в юзерской папке несколько строк (настройка адресной книги из AD в thunderbird-е)
соответственно файл лежит в папке вида C:\Users\current_user\AppData\Roaming\Thunderbird\Profiles\kcab2bup.default так как юзеров на машине с профилем TB может быть несколько, то просто поиск по C:\Users выдаст несколько файлов собственно вопросы- как искать в папке текущего пользователя? +скрипт будет запускаться вероятно от системы/админа- мб это как-то помешает? дальше for /f "tokens=*" %%a in ('Dir /b/s/a-d C:\hosts') Do Set $Path=%%a путь задается в переменную- тут все без изменений? собственно запись в файл echo "text" >> c:\somefile.txt - как указать здесь переменную пути? |
Отправлено: 15:02, 25-10-2013 | #22 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Kryptonite,
1. по своему смыслу, "текущий" = "под которым запущен скрипт" может быть одновременно >1 залогиненного пользователя (удаленно, планировщик и т.п.) 2. код ищет все файлы "hosts" на диске C: , именно это и нужно?.. еще вариант: 3. Один из способов приведен в п.2 |
Отправлено: 15:25, 25-10-2013 | #23 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать касательно пользователя - при логине запускается скрипт (спс групповым политикам) (в ад есть строка параметры сценария- мб там можно указать именно запуск от логинившегося юзера, еще не смотрел что/как).
Соответственно на компе есть N учеток, надо чтобы в CMD указывался current_user- тот кто залогинился. Например по дате последнего вызова, из таскменеджера- не знаю как, экспы мало. Соответственно команда на поиск pref.js именно в папке этого пользователя про запись в файл не понял Where /r C:\ 1.js for /f "tokens=*" %%a in ('dir /b/s/a-d c:\users\hosts') do ( set "$Path=%%a" call echo %%$Path%% ) Echo user_pref("ldap_2.autoComplete.directoryServer", "ldap_2.servers.pl1_1"); >> - как здесь конец выглядит? |
Отправлено: 15:55, 25-10-2013 | #24 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Kryptonite:
пример поиска pref.js в профиле текущего пользователя и вывод пути в файл C:\LOGS\User.log: З.Ы. у пользователя должны быть права на запись целевую в папку |
|
Отправлено: 16:22, 25-10-2013 | #25 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 23:40, 26-10-2013 | #26 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Есть еще вариант не поиска текущего пользователя, а поиска последнего измененного prefs.js тогда нужно поиск по C:\Users и найти самый новый блин, еще у огнелиса такое же имя файла есть........... |
|
Последний раз редактировалось Kryptonite, 28-10-2013 в 09:33. Отправлено: 08:26, 28-10-2013 | #27 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать проблема решилась без костылей. в C:\Program Files (x86)\Mozilla Thunderbird\defaults\pref можно указать конфиг файл, с которого брать доп настройки и собственно написать еще один конфиг файл с нужными строками
благодарю всех за участие! |
Отправлено: 11:43, 28-10-2013 | #28 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Всем здравствуйте
Пожалуйста, помогите, хочется чем проще, тем лучше - как для понимания (немного въехать, понять, что и как), так и для реализации Требуется найти файл 1.exe на диске C:\, включая неограниченную глубину подпапок, путь к файлу может содержать как пробелы, так и русские названия папок Когда файл 1.exe найдется, требуется записать в переменную full_path полный путь к файлу, включая расширение, например, если файл 1.exe найдется в папке C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup, то в переменной full_path должно быть прописано C:\Users\Администратор\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\1.exe Спасибо. |
Отправлено: 21:36, 23-02-2022 | #29 |
Ветеран Сообщения: 2733
|
Профиль | Отправить PM | Цитировать SharkyEXE, Если Вы уверены, что искомый файл один, то:
@Echo Off
cls
Set "BoxIn=D:"
Set "FFile=я22022410.bat"
FOR /F "usebackq delims=" %%f In (`2^>nul Where /R "%BoxIn%" "%FFile%"`) DO Set "full_path=%%f"
Echo full_path= "%full_path%"
Pause
Exit /B
Если файлов может быть несколько, то: @Echo Off
cls
Set "BoxIn=D:"
Set "FFile=я22022410.bat"
Set /A N=0
FOR /F "usebackq delims=" %%f In (`2^>nul Where /R "%BoxIn%" "%FFile%"`) DO (
Set /A N+=1
Call Set "full_path_%%N%%=%%f"
)
Set "full_path_"
Pause
Exit /B
Пути и имя файла укажите свои. Цитата SharkyEXE:
Если Вы работаете с блокнотом (кодировка 1251) то после cls добавьте строку |
|
------- Последний раз редактировалось megaloman, 24-02-2022 в 15:22. Отправлено: 15:15, 24-02-2022 | #30 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] поиск файла по маске и запись этого имени в переменную | ___dima___ | Скриптовые языки администрирования Windows | 20 | 18-06-2017 01:46 | |
[решено] Рекурсивный поиск файла | cra5h_ | AutoIt | 47 | 06-02-2010 11:38 | |
[решено] Поиск файла на компьютере | sashadeg | AutoIt | 12 | 30-01-2010 18:40 | |
Разное - [решено] Поиск по типу файла | 7human7 | Microsoft Windows 7 | 2 | 25-11-2009 09:51 | |
CMD/BAT - Как из бат-файла проверить наличие файла по ссылке, не скачивая файл ? | mitiya | Скриптовые языки администрирования Windows | 2 | 27-06-2008 20:50 |
|