Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 4

Автор: 01MDM
Дата сообщения: 20.11.2007 20:22
BELOV
Я имел ввиду создать макрос с "чистого листа". По этому вопросу я помочь не могу.

А скрипт это как вариант для обработки документа в формате rtf, но я сомневаюсь что он правильно отработает. На всякий случай попробуй. Свой doc в сохрани в rtf. Замени выделенные названия в коде на свои (вверху тот, который есть, а внизу, который должен получиться на выходе). Если получится, сохрани обратно в doc.
Автор: Filosofem
Дата сообщения: 21.11.2007 13:26
такая трабла: нужно удалить из набора .zip архивов файлы thumbs.db. Проблема осложняется тем, что файлы скрытые и такое решение не прокатывает:
for /f "usebackq delims=" %i in (`dir /a-d e:\archive\2003 /b /s`) do start
/wait winrar d -inul "%i" "thumbs.db"
Винрар не хочет удалять скрытые файлы.

Существует какое-нибудь простое решение, без перераспаковки всех архивов?
Автор: 01MDM
Дата сообщения: 21.11.2007 13:56
Filosofem
а в справке нет такого ключа:

Цитата:

e[+]<атр> Исключить/включить в обработку файл(ы) с указанными атрибутами
Автор: Filosofem
Дата сообщения: 21.11.2007 14:05
01MDM


Цитата:
Filosofem
а в справке нет такого ключа:

Цитата:

e[+]<атр> Исключить/включить в обработку файл(ы) с указанными атрибутами

справку читал. Этот свич не помогает
Автор: 01MDM
Дата сообщения: 21.11.2007 14:10
Filosofem
Они еще и системные.
Автор: Filosofem
Дата сообщения: 21.11.2007 14:15
BELOV

Цитата:
Как отформатировать текст в Word'e:
Текст (скопированый)с сайта выстроен колонкой примерно половина стандартной ширины страницы Word'a. Чтобы вручную отредактировать, надо становиться в конец строки, ставим пробел и кликаем Del. Тогда следующая строка склеивается с текущей и текущая строка занимает теперь всю ширину страницы. Чтобы не заниматься такой трудотерапией, можно написать батник? Ну а в идеале: чтобы все строки стали ровными по обоим краям и во всю ширину страницы. М.б. уже есть готовый батник?


в ворде есть функция найти и заменить (ctrl+h если не ошибаюсь). Заменяешь знак конца абзаца, или конца строки на пробел и применяешь ко всему тексту. Затем включаешь выравнивание по всей ширине и анкерами выставляешь нужную ширину


Добавлено:
01MDM

Цитата:
Filosofem
Они еще и системные.

Оказалось проблема была не в этом, я чего-то напутал.
Системные и скрытые нормально удаляются. Не удаляются те, которые с относительными путями, то есть в папках лежат. Что с этим можно сделать? Ключ -r не помогает

Автор: Fors127
Дата сообщения: 21.11.2007 19:43
Filosofem

Цитата:
в ворде есть функция найти и заменить (ctrl+h если не ошибаюсь). Заменяешь знак конца абзаца, или конца строки на пробел и применяешь ко всему тексту.

Это сразу попробовал, но не удается найти эти знаки. Поэтому, WU "перелопатил" текст, а затем
Цитата:
Затем включаешь выравнивание по всей ширине и анкерами выставляешь нужную ширину
ОК!

Автор: ArchangelLite
Дата сообщения: 21.11.2007 20:09
Добрый день (вечер).

Как мне удалить некоторые файлы на рабочем столе, ведь его точное расположение я не знаю.

Заранее огромнеейшее спасибо...

Добавлено:
Да, извините если прерываю, и что не по теме...
Просто очень нужно, найти путь зная название папки.
Автор: PapaKarlo
Дата сообщения: 21.11.2007 21:13
ArchangelLite

Цитата:
ведь его точное расположение я не знаю

Что-нибудь вроде %USERPROFILE%\Desktop
Автор: AndrewPfaifer
Дата сообщения: 22.11.2007 11:44
имеется такая необходимость что бы комп в нужное время блочился без админа и в нужное время логинился также без админа.
Первую проблему я уже решил(rundll32.exe user32.dll,LockWorkStation), а вот какая функция исполняет вход?
Автор: William Gates
Дата сообщения: 23.11.2007 11:58
Такая необходимость. Есть два одинаковых каталога: один на сервере, другой локально. Нужен батник который просканирует каталог на сервере и если в нем будут новые или измененные файлы скопирует их в локальный каталог. Заранее спасибо!
Автор: Maza Faka
Дата сообщения: 23.11.2007 12:09
William Gates
Поищи в версии для печати Robocopy.
Автор: NIKZZZZ
Дата сообщения: 23.11.2007 12:37
Есть задачка - слить 2 файла в один, каждая строка которого представляет собой строку , образованную слиянием соответствующих по номеру строк исходных файлов.
Не желательно использовать конструкцию For /f "Skip=n" - слишком медленно.
Автор: 01MDM
Дата сообщения: 23.11.2007 15:24
NIKZZZZ
Без скипа не получается. Вариант с временными файлами и скипом.

Код:
@echo off
setlocal

echo.>1.tmp && type 1.txt >>1.tmp
echo.>2.tmp && type 2.txt >>2.tmp

for /f %%i in (1.txt) do set /a count+=1
set /a count+=1
set skip=1
:next
for /f "skip=%skip% tokens=*" %%i in (1.tmp) do (
set "line1=%%i" && goto:skip
)
goto:eof
:skip
for /f "skip=%skip% tokens=*" %%i in (2.tmp) do (
set "line2=%%i" && goto:write
)
goto:eof
:write
set "line=%line1% %line2%"
for /f "tokens=*" %%i in ("%line%") do echo %%i>>3.txt
set /a skip+=1
if %skip%==%count% (del /q *.tmp && goto:eof) else (goto:next)
Автор: Vladimir312
Дата сообщения: 23.11.2007 16:11
Вопросик:

1. Есть пара каталогов, надо из одного скопировать в другой новые файлы.
Но не "измененные", а именно только новые,
т.е. чтобы не было правок файлов "задним числом" ...
Т.е. если файл уже во 2-м каталоге существует, то его не перезаписывать.
===
2. вариант с xcopy /u - только "обратный"
/U Копирует только файлы, которые уже существуют в конечной папке.
К сожалению, обратный, типа /y и /-y с /-u - не проходит (нэт такого ключика).
И в большинстве программок - такой фишки не встречал.
===
3. Варианты с копированием только файлов с атрибутом "Архив" и сбросом атрибута - после копирования - не годится, т.к. MS Office (Word, Excel) после модификации,
или просто после сохранения (даже без изменения данных) - ставять атрибут "А".
===
4. Вариант с датами файлов - запрет на копирование по "старости" - 1 день:
NTFS хранит и MS MS Office корректно ставит дату на файлы, например,
проводник, правая кнопки мыши, свойства:
- файл создан (одна дата - 13.11.2007)
- файл изменен (другая дата - 19.11.2007)
Но, стандартные консольные утилитки copy и xcopy
считают дату изменения - датой файла,
может быть из-за того, что MS Office (Word, Excel) оченть интересно изменяют файлы:
- сначала создают временную копию,
- затем удаляют оригинал,
- и временную копию (измененную) переименовывают вместо оригинального файла.
===
5. вариант который работает - с RAR:
ключ -O- — пропускать существующие файлы
Разрешает пропускать существующие файлы без выдачи запросов пользователю.
Т.е. вариант "немного" "не правильный"
- сначала создается RAR архив с ключем -o-
- затем тут же разархивируется в целевую папку
т.к. нужен не архив, а именно "живые" файлы.
***
Не подскажите вариант со скриптами или готовую программку (которая "умеет" так работать) ?
===
Наверное,
- сначала "dir" одной папки (dir /a-d /b);
- затем "dir" целевой папки (dir /a-d /b);
- сравнение;
- копирование не достающих файлов в целевую.
***
P.S.
Спасибо за подсказку (см. следующий пост) - robocopy /XN
делает то, что надо (копирует только новые файлы, без измененных).

И, : по ссылке в шапке http://www.rsdn.ru/article/winshell/batanyca.xml

Код: for /d %%i in ("%%~si") do (
set SHORT=%%~si
)
echo %SHORT%
Автор: KapralBel
Дата сообщения: 23.11.2007 16:17
Vladimir312
См. совет выше о Robocopy
Автор: NIKZZZZ
Дата сообщения: 23.11.2007 16:29
01MDM

Цитата:
Без скипа не получается.

Так в этом и вся проблема.

Автор: 01MDM
Дата сообщения: 23.11.2007 17:10
NIKZZZZ
Вот еще заготовочка:

Код:
@echo off
setlocal enabledelayedexpansion
set count=0
for /f %%i in (1.txt) do (
    set line=%%i
    set /a count+=1
    call:next
)
goto:eof
:next
set count2=0
for /f %%i in (2.txt) do (
    set /a count2+=1
    if !count2!==%count% (echo %line% %%i >>3.txt)
)

Автор: NIKZZZZ
Дата сообщения: 23.11.2007 18:51
01MDM

Цитата:
Вот еще заготовочка

Так проблема в том, что для обработки каждой строки первого необходимо каждый раз заново открывать второй и читать его сначала. Возможно ли батником синхронно читать оба файла?
Автор: king_stiven
Дата сообщения: 23.11.2007 22:29
NIKZZZZ
А какая скорость нужна , если всё таки использовать skip?
Автор: NIKZZZZ
Дата сообщения: 23.11.2007 23:35
king_stiven

Цитата:
А какая скорость нужна , если всё таки использовать skip?

Так проблема не в Skip , вопрос в том можно ли хотя-бы в теории одновременно читать оба файла батником?
Автор: king_stiven
Дата сообщения: 24.11.2007 00:19
NIKZZZZ
В данной постановке задачи штатными средствами вряд ли.
Автор: xKLx
Дата сообщения: 25.11.2007 03:27

Код: @echo off
echo Viberite server

set serv=b
set /p serv=(1) Da6avitb (2) 3amenitb ??
if "%serv%"==1 ?????
if "%serv%"==2 ?????

set server=a
set /p server=(1) ----- (2) ------ {3} ------ {4} ----- (0) quit?
if /i %server%==1 goto 1
if /i %server%==2 goto 2
if /i %server%==3 goto 3
if /i %server%==4 goto 4
if /i %server%==0 goto end

:1
echo 1127.0.0.1 localhost> C:\hosts
echo 189.207.221.204 l2testauthd.lineage2.com>> C:\hosts
echo 189.207.221.204 l2authd.lineage2.com>> C:\hosts
echo 189.207.221.204 nprotect.lineage2.com>> C:\hosts
pause
exit

pause
exit

:2
echo 2127.0.0.1 localhost> C:\hosts
echo 289.207.221.204 l2testauthd.lineage2.com>> C:\hosts
echo 289.207.221.204 l2authd.lineage2.com>> C:\hosts
echo 289.207.221.204 nprotect.lineage2.com>> C:\hosts
pause
exit

:3
echo 3127.0.0.1 localhost> C:\hosts
echo 389.207.221.204 l2testauthd.lineage2.com>> C:\hosts
echo 389.207.221.204 l2authd.lineage2.com>> C:\hosts
echo 389.207.221.204 nprotect.lineage2.com>> C:\hosts
pause
exit

:4
echo 127.0.0.1 vip.tt2xz.com> C:\hosts
echo 127.0.0.1 vip1.tt2xz.com>> C:\hosts
echo 127.0.0.1 vip2.tt2xz.com>> C:\hosts
echo 127.0.0.1 vip3.tt2xz.com>> C:\hosts
echo 127.0.0.1 vip4.tt2xz.com>> C:\hosts
echo 127.0.0.1 vip5.tt2xz.com>> C:\hosts
echo 127.0.0.1 vip6.tt2xz.com>> C:\hosts
echo 127.0.0.1 vip7.tt2xz.com>> C:\hosts
echo 127.0.0.1 VIP1.TOWALKER.COM>> C:\hosts
echo 127.0.0.1 VIP2.TOWALKER.COM>> C:\hosts
echo 127.0.0.1 VIP3.TOWALKER.COM>> C:\hosts

pause
exit
Автор: 01MDM
Дата сообщения: 25.11.2007 11:49
xKLx

Цитата:
суть батника дававлять или заменять некоторые записи в хосте

По-моему ты везде заменяешь.

Цитата:
вот только незнаю что надо писать где стоят "?????"

Если ты имел ввиду выбор действия то:

Код:
@echo off
setlocal
set /p serv="1 - add, 2 - replace: "
if ~%serv%==~ (echo empty choice && goto:eof)
if %serv%==1 (goto:add)
if %serv%==2 (goto:replace)
echo wrong choice && goto:eof

:add
:: Здесь дописываешь в файл
echo add
goto:eof

:replace
:: Здесь перезаписываешь файл
echo replace
Автор: xKLx
Дата сообщения: 25.11.2007 13:57

Код: :1
echo 1127.0.0.1 localhost> C:\hosts
echo 189.207.221.204 l2testauthd.lineage2.com>> C:\hosts
echo 189.207.221.204 l2authd.lineage2.com>> C:\hosts
echo 189.207.221.204 nprotect.lineage2.com>> C:\hosts
pause
exit

:2
echo 2127.0.0.1 localhost>> C:\hosts
echo 289.207.221.204 l2testauthd.lineage2.com>> C:\hosts
echo 289.207.221.204 l2authd.lineage2.com>> C:\hosts
echo 289.207.221.204 nprotect.lineage2.com>> C:\hosts
pause
exit
Автор: AmunRa
Дата сообщения: 26.11.2007 08:59
как проверить все файлы в папке и удалить те, что старше 10 дней?
Автор: KapralBel
Дата сообщения: 26.11.2007 10:13
AmunRa


Код: RAR m r -to10d c:\Delete.rar C:\Folder
del c:\Delete.rar /q
Автор: Nagual
Дата сообщения: 26.11.2007 10:30
AmunRa
test.cmd
Код: @[no]echo[/no] off
[no]for[/no] /f "delims[no]=[/no]" [no]%%a[/no] [no]in[/no] ('forfiles/s /d -10') [no]do[/no] [no]del[/no]/q/f/s [no]%%a[/no]
Автор: AmunRa
Дата сообщения: 26.11.2007 11:10
Nagual
спасибо, все отлично работает
Автор: xKLx
Дата сообщения: 26.11.2007 19:55
(( ну ктонидь ответьте мне

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.