|   |   | 
| 
 | Помогите написать Bat файл | ☑ | ||
|---|---|---|---|---|
| 0
    
        botman4 16.05.18✎ 14:10 | 
        Есть папка "test1", в ней появляются периодически файлики. Их нужно копировать в другую папку, предварительно проверяя в "datebase.txt", 
 если там есть имя файла, тогда ничего не делаем, если нету - тогда копируем этот файл в папку "test" и добавляем строку с именем этого файла в "datebase.txt" вот что я написал,проверяется, копируется, но в файл "datebase.txt" имена файла не попадают. for %%A in ("d:\test1\*.txt") do find /I /C datebase.txt "%%~nA" 1>nul || COPY /Y %%A "d:\test\" || echo "%%~nA" >>"datebase.txt" Подскажите плз! | |||
| 1
    
        echo77 16.05.18✎ 14:42 | 
        (0) А если так
 for %%A in ("d:\test1\*.txt") do find /I /C datebase.txt "%%~nA" 1>nul || COPY /Y %%A "d:\test\" && echo "%%~nA" >>"datebase.txt" | |||
| 2
    
        echo77 16.05.18✎ 14:46 | 
        Если я правильно помню, "||" - это переход к выполнению следующей команды, если предыдущая выполнилась "неуспешно"
 "&&" - успешно, "&" - когда фиолетово на результат выполнения предыдущей команды | |||
| 3
    
        botman4 16.05.18✎ 14:58 | 
        (2) Спасибо тебе, добрый человек! Все завелось!     | |||
| 4
    
        Вафель 16.05.18✎ 14:59 | 
        лучше js напиши. более понятный синтаксис. эту строку ты же сам потом не разберешь | |||
| 5
    
        botman4 16.05.18✎ 15:10 | 
        Ну я уже разберу )
 а поповоду js гляну, спасибо. | |||
| 6
    
        D_E_S_131 16.05.18✎ 15:21 | 
        ОФФ: Шо и здесь "дайбатнеги" уже? xD     | |||
| 7
    
        Локи-13 16.05.18✎ 15:26 | 
        уж лучше б на питоне написал, или, не в слух будет сказано, на 1скрипте     | |||
| 8
    
        vcv 16.05.18✎ 15:26 | 
        (4)(7) Вам бы только программы по любому чиху писать. 
 (0) А зачем проверка файла по текстовому файлу? Если для того, что бы не копировать уже однажды скопированное хватило бы одного xcopy с ключом /M | |||
| 9
    
        vcv 16.05.18✎ 15:30 | 
        +(8) А если database.txt какой-то хитрый файл, можно xcopy указать ключ /EXCLUDE, что бы исключить файлы, перечисленные в database.txt.
 А пополнять database.txt примерно так: xcopy откуда куда /L >>database.txt | |||
| 10
    
        Franchiser 16.05.18✎ 15:34 | 
        Что такое "%%~nA" ?     | |||
| 11
    
        Franchiser 16.05.18✎ 15:36 | 
        У меня похожая задача: можно ли как то в батнике переменную проверять со значением в первой строке файла и если он отличается, то заменять это значение?     | |||
| 12
    
        vcv 16.05.18✎ 15:37 | 
        (10) for /? в помощь
 %%A переменная. ~n означает, что из полного имени файла в переменной %%A нужно взять только имя без расширения | |||
| 13
    
        Franchiser 16.05.18✎ 15:39 | 
        (12) понял, посмотрел на stackoverflow     | |||
| 14
    
        Franchiser 16.05.18✎ 15:42 | 
        (12) без цикла for обратиться к строке в файле по номеру нельзя?     | |||
| 15
    
        vcv 16.05.18✎ 16:05 | 
        (14) Нормальных вариантов нет. Есть извратные.
 Например: findstr /n . c:\boot.ini | findstr ^3: получаем строку номер 3. | |||
| 16
    
        botman4 16.05.18✎ 16:07 | 
        (8) файлы потом из второй папки удаляются. и файлы копируются из исходной папки в разные, для разных машин.
 (9) а вот это попробую | |||
| 17
    
        vcv 16.05.18✎ 16:17 | 
        (16) Может и стоит воспользоваться штатным атрибутом Архивный?
 Кто-то создаёт файл. Атрибут архивный автоматом ставится. xcopy по какому-то критерию (наверное имени) копирует на нужную машину, снимая при этом атрибут Архивный, но только те файлы, для которых установлен Архивный. Вторая xcopy, копируя на другую машину, файлы, скопированные первой не видит, потому что атрибут Архивный снят. Или я совсем не так задачу понял? | |||
| 18
    
        Franchiser 16.05.18✎ 16:46 | 
        (15) у меня возвращает 2 строки     | |||
| 19
    
        vcv 16.05.18✎ 16:59 | 
        (18) Измени второй findstr. Возможно умолчания другие. Попробуй findstr /B /C:"3:"     | |||
| 20
    
        Franchiser 16.05.18✎ 17:06 | 
        (19) так работает)     | |||
| 21
    
        botman4 16.05.18✎ 17:12 | 
        (17) нет. так не пойдет. 
 Суть такова. Есть программа, которая получает обновления. Эти обновления в виде текстовых файлов. После получения обновлений я их копирую, а потом прога их хавает. Затем я эти скопированные обновления отправляю на webdav сервер(батником), там эти обновления копятся до потери сознания(не удаляются). Затем в другом конце планеты, где эта программа по каким-то причинам не может получить обновления официально подключается к моему webdav серверу и забирает нужные обновы в свою папку, обновляется и удаляет их у себя. Таких программ может стоять много по разным уголкам. | |||
| 22
    
        Сияющий в темноте 16.05.18✎ 21:45 | 
        Напиши сценарий на VbScript и запихай его в планировщик,он и файлы сможет переименовать и в проверит надичие в целевой папке без какого либо файла     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |