![]() |
поиск файла.
нужно чтобы batник искал файл 123456.exe на диске С.
как это написать? |
rust-02,
Код:
DIR /b/s/a-d C:\123456.exe запишет путь к найденному файлу в переменную $Path PS: Дальнейшие действия не предполагаются? |
если кто знает,как можно этот путь передать в delphi?
|
rust-02,
А зачем? В DELPHI есть собственная функция поиска файлов: function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): В Вашем случае будет что-то в таком духе: Код:
findFirst('C:\','123456.exe',faAnyFile,sr) |
Подскажите пожалуйста. Я вот сделал таким образом поиск файла :
Код:
@echo on DIR /b/s/a-d D:\login.ini pause |
Aarons, смотрите выше сообщение deepred'а:
Код:
for /f "tokens=*" %%a in ('Dir /b/s/a-d C:\hosts') Do Set $Path=%%a Код:
for /f "tokens=*" %%a in ('Dir /b/s/a-d D:\login.ini') Do type "%%a" |
Ну вот, я сделал так :
for /f "tokens=*" %%a in ('Dir /b/s/a-d D:\login.ini') Do Set name=%%a Файл находит. Теперь именно полное содержимое файла нужно занести в другую переменную. Как это сделать ? ) |
Цитата:
Цитата:
|
С выводом на экран разобрался, нужно теперь полностью содержимое файла в переменную.
В каком плане "зачем" ? Если попросил помощи - значит для чего то да и нужно. Для быстрой работы мне нужно, чтоб нужный мне файл на кампьютере искался и выводился на экран его содержимое. Но для этого я хочу это содержимое в переменную. |
Цитата:
|
Внизу я подписывал для чего. Конечная цель вроде и так понятна. Найти файл, поместить его содержимое в переменную и вывести на экран.
Разве это так не понятно ? |
Я спрашивал, про цель помещения содержимого файла в переменную, ибо для вывода содержимого файла на экран этот этап — вовсе не нужен.
|
Цитата:
Код:
@echo off - строки не должны содержать восклицательных знаков "!" и спецсимволов - при желании можно учесть и эти случаи ценой усложнения скрипта |
Цитата:
"средство" может стать "целью": - в академических целях (задача из учебника); - из-за дополнительных ограничений (политика безопасности, знание языка, особенности реализации и т.п.); Все эти факторы крайне желательно оговаривать при постановке задачи. |
Уважаемые Господа, а подскажите - как добавить в переменную из файла к примеру только первую и четвёртую строки. Другие пропустить.
Прошу прощения за надоедливость. |
А можно ли написать батник, чтобы он искал определенный файл и подменял его другим?
|
|
Aarons, вот так:
Код:
@Echo Off Код:
one |
Anonymоus, если коллега Aarons не подписан на эту тему, то вряд ли он узнает о решении: скоро год как он не заходил на форум.
|
подскажите как реализовать такой батник ?
1 искать файл 1.exe по локальным дискам (может быть несколько) 2 если 1.exe найден по запускаем приложение A.exe от имени администратора, если ненайден то переходим к поиску файла 2.exe |
Ребята помогите пожалуйста!
Следующая задача: 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, как убрать, т.к. не находит правильный путь |
Продолжая тему. нужно дописать в конфиг файл в юзерской папке несколько строк (настройка адресной книги из 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 - как указать здесь переменную пути? |
Kryptonite,
1. по своему смыслу, "текущий" = "под которым запущен скрипт" может быть одновременно >1 залогиненного пользователя (удаленно, планировщик и т.п.) 2. код ищет все файлы "hosts" на диске C: , именно это и нужно?.. еще вариант: Код:
for /f "tokens=*" %%a in ('dir /b/s/a-d c:\users\hosts') do ( |
касательно пользователя - при логине запускается скрипт (спс групповым политикам) (в ад есть строка параметры сценария- мб там можно указать именно запуск от логинившегося юзера, еще не смотрел что/как).
Соответственно на компе есть 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"); >> - как здесь конец выглядит? |
Цитата:
пример поиска pref.js в профиле текущего пользователя и вывод пути в файл C:\LOGS\User.log: Код:
@echo off |
Если в файле больше одной строки - то никак не занести его в переменную.
С одной строкой так: Код:
for /F "delims=" %%s in (file) do set var=%%s |
Цитата:
Есть еще вариант не поиска текущего пользователя, а поиска последнего измененного prefs.js тогда нужно поиск по C:\Users и найти самый новый блин, еще у огнелиса такое же имя файла есть........... |
проблема решилась без костылей. в C:\Program Files (x86)\Mozilla Thunderbird\defaults\pref можно указать конфиг файл, с которого брать доп настройки и собственно написать еще один конфиг файл с нужными строками
благодарю всех за участие! |
Всем здравствуйте
Пожалуйста, помогите, хочется чем проще, тем лучше - как для понимания (немного въехать, понять, что и как), так и для реализации Требуется найти файл 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 Спасибо. |
SharkyEXE, Если Вы уверены, что искомый файл один, то:
Код:
@Echo Off Если файлов может быть несколько, то: Код:
@Echo Off Пути и имя файла укажите свои. Цитата:
Если Вы работаете с блокнотом (кодировка 1251) то после cls добавьте строку Код:
@Echo Off |
Цитата:
for /R %%f in (1.exe) do if exist "%%f" set full_path=%%f echo full_path=%full_path% Так в переменной окажется путь к последнему из всех найденных файлов 1.exe. Если нужна информация обо всех найденных файлах, то можно вывести её в ходе поиска в файл: cd /d C: copy nul found.txt for /R %%f in (1.exe) do if exist "%%f" ( set full_path=%%f >>found.txt echo %%f ) echo full_path=%full_path% pause more found.txt |
Время: 11:04. |
Время: 11:04.
© OSzone.net 2001-