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

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

Автор: dimpase
Дата сообщения: 03.10.2008 09:20
01MDM
ВСЕ!Проблема решена!
Скачал архив с http://home.online.no/~tjaberg/gsar121.zip.
Все работает.Вроде
Еще раз спасибо.


Добавлено:
ДААА!!!Все работает как надо.Теперь доделаю наконец то!!!
Автор: Necronicus
Дата сообщения: 03.10.2008 09:43
Kalbasnik

Цитата:
XCOPY "C:\Update"\*.* H:\Update\ /d /s /i /y

"/y" для подтверждения замены файтов, меняет только если они изменялись, если нет не копирует и оставляет старые.


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

Мне не добавить Yes нужно было, а узнать копирует он всё или нет. Потому что может быть файлы по дате такие-же а что-то изменилось или по размеру даже такие. а то как-то быстро операция проходит мгновенно. волнуюсь.
Автор: Kalbasnik
Дата сообщения: 03.10.2008 10:08
Necronicus
ХЗ, вроде копирует все. Проверял на *.txt , он там 1кб весит менял содержимое и нормуль было. Я в этом не резбираюсь, просто себе подобное когдато делал
А ключ походу добавить надо а не убрать.
Автор: dimpase
Дата сообщения: 03.10.2008 10:34
---
01MDM
БЛИН!
А почему если строку в 1.txt меняешь в html не меняется?? У gsar стоит же параметр менять строку -r!!
А он у меня либо не меняет вообще,потому как не может найти такую строку:
@echo off
setlocal
chcp 1251 1>nul
for /f "tokens=2 delims=>" %%i in ('type 1.txt ^| findstr /I "ID=25"') do set "field=%%i"
gsar -s"<td ID=25>" -r"<td ID=25>%field%" -o 1.html
Я его тут малость изменил,только два ключа добавил.
Убрал после ...gsar -s"<td ID=25>,- </td>чтобы он искал только этот параметр <id=25>
и заменял всю строку, но он не заменяет а добавляет.А в том варианте который вы мне предлогали <TD ID=25>25</TD>,-после присваения ему значения там будет же уже другое поле!Он это поле и не может найти, чтобы поменять значения! А допустим изменится телефон у какого-то юзера?Он же не поменяет!
---
Автор: cluster
Дата сообщения: 03.10.2008 10:38
Хей, люди! Ну подскажите что-нибудь по каталогам

[MORE]Ребят, а какой командой можно каталоги обработать?
Есть куча каталогов с различными именами. Нужно присвоить переменной имя каталога и выполнить команду.. не важно какую, скажем: md %dirname%_a
А потом тоже самое со следующим каталогом.[/MORE]
Автор: yurkesha
Дата сообщения: 03.10.2008 11:04
cluster [more=смотри]кусок из FOR/?

Код: FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]
Выполнение команды для каталога [диск:]путь, а также для всех подкаталогов этого пути. Если после ключа /R не указано имя каталога, выполнение команды начинается с текущего каталога.
Если вместо набора указана только точка (.), команда выводит список всех подкаталогов.
Автор: cluster
Дата сообщения: 03.10.2008 12:07
Ну вот сделал батник:
FOR /R "C:\temp" %%a in (.) DO echo %a%

Но он перебирает все каталоги с подкаталогами
Автор: 01MDM
Дата сообщения: 03.10.2008 13:15
dimpase

Напиши подробней что должно получиться на выходе. Я привел только пример, т.к только догадываюсь о том что должно быть в итоге.

Попробуй немного измененный вариант:

Код:
@echo off
setlocal
chcp 1251 1>nul

:: Находим нужную строку из текстового файла и берем новое значение
for /f "tokens=2 delims=>" %%i in ('type 1.txt ^| findstr "ID=25"') do set "new=%%i"

:: Находим нужную строку из html файла и берем значение, которое надо заменить
for /f "tokens=3 delims=><" %%i in ('type 1.html ^| findstr "ID=25"') do set "old=%%i"

:: Меняем с перезаписью html
gsar -s"%old%" -r"%new%" -o 1.html
Автор: dimpase
Дата сообщения: 03.10.2008 13:16
01MDM
--
решил проблему следующим образом:
setlocal
chcp 1251 1>nul
for /f "tokens=2 delims=>" %%i in ('type 1.txt ^| findstr /I "ID=25"') do set "field=%%i"
gsar -s"<td ID=25></TD>" -r"<TD ID=25>%field%</TD>" -o 1.html
for /f "tokens=2 delims=>" %%i in ('type 1.html ^| findstr /I "ID=25"') do set "field_2=%%i"
for /f "tokens=2 delims=>" %%i in ('type 1.txt ^| findstr /I "ID=25"') do set "field_3=%%i"
gsar -s"<TD ID=25>%field_2%" -r"<TD ID=25>%field_3%" -o 1.html


pause

подскажи, может как по легче можно замутить?
Автор: 01MDM
Дата сообщения: 03.10.2008 13:27
cluster

А нужно без подкаталогов? тогда

Код:
for /d %%i in (C:\temp\*) do echo %%i
Автор: DOStavun
Дата сообщения: 03.10.2008 15:04
Вообщем есть задача многоранговая сеть (с контролером домена и файловым сервером)???
На файловом сервере расположились папки пользователей.
Необходимо чтобы они подружались из домена с помощью bat скрипта --- ниже---
и есть vbs скрипт который должен запускаться для переименования всех дисков, так вот последний не делает этого??? Что то не правильно!? Вернее он не все диски переименовывает! В последнем скрипте продолжение все буквы и все имена я просто не стал его полностью выкладывать!
-----------------------------------------------------------------------------------
echo off
if exist Z:\*.* net use Z: /delete \\nas\logfile$\%computername%.log
if exist Y:\*.* net use Y: /delete \\nas\logfile$\%computername%.log
if exist X:\*.* net use X: /delete \\nas\logfile$\%computername%.log
if exist W:\*.* net use W: /delete \\nas\logfile$\%computername%.log
if exist V:\*.* net use V: /delete \\nas\logfile$\%computername%.log
if exist U:\*.* net use U: /delete \\nas\logfile$\%computername%.log
if exist T:\*.* net use T: /delete \\nas\logfile$\%computername%.log
if exist S:\*.* net use S: /delete \\nas\logfile$\%computername%.log
if exist R:\*.* net use R: /delete \\nas\logfile$\%computername%.log
if exist Q:\*.* net use Q: /delete \\nas\logfile$\%computername%.log
if exist P:\*.* net use P: /delete \\nas\logfile$\%computername%.log
if exist O:\*.* net use O: /delete \\nas\logfile$\%computername%.log
if exist N:\*.* net use N: /delete \\nas\logfile$\%computername%.log
if exist M:\*.* net use M: /delete \\nas\logfile$\%computername%.log
if exist L:\*.* net use L: /delete \\nas\logfile$\%computername%.log
if exist K:\*.* net use K: /delete \\nas\logfile$\%computername%.log

net use Z: \\nas\PROGRAMS$ /u:administrator 111111 >>\\nas\logfile$\%computername%.log
net use Y: \\nas\Multimedia$ /u:administrator 111111 >> \\nas\logfile$\%computername%.log
net use T: \\nas\Total$ /u:administrator 111111 >> \\nas\logfile$\%computername%.log
net use O: \\nas\Free /u:administrator 111111 >> \\nas\logfile$\%computername%.log

cscript.exe \\nas\logfile$\xxxx.vbs

------------------------------------------------------------------------------------------------------
mDrive = "T:\"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = "Общее"

mDrive = "X:\"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = "Backup"

mDrive = "Y:\"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = "Мультимедиа"

mDrive = "Z:\"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = "Программы"
Автор: Glomen
Дата сообщения: 03.10.2008 15:05
Поискал но не нашел.

Есть exe файл , при запуске требующий нажатия пробела , либо любой клавиши на клавиатуре.

Вопрос: Как из bat файла передать этому exe нажатие пробела либо другой клафиши ?
Автор: dimpase
Дата сообщения: 03.10.2008 15:24
01MDM
Впринцепе вопрос решен , но сталкнулся с другой проблемой, теперь у меня батник путает мой ID, как задать чтобы спомощью этой команды или какой другой он искал точное совпадение?допустим надо найти строку с ID=1 и вставить туда 1001, он вставляет самый последний найденный с еденицей файл например 1999 или там 1199.
Заранее еще раз спасибочки!
Автор: KapralBel
Дата сообщения: 03.10.2008 15:37
dimpase
Включай в FIND - поле идентификатора разделитель

FIND "ID=1 "
Автор: VidelSamogO
Дата сообщения: 04.10.2008 03:32
Подскажите, пожалуйста, как запустить процесс из под одного CPU? Или как передать уже запущенный процесс определённому ядру.
Автор: cluster
Дата сообщения: 04.10.2008 09:52
01MDM

Цитата:
for /d %%i in (C:\temp\*) do echo %%i

Да. Спасибо большое.
А кто-нибудь знает, почему XCACLS.VBS работает только с объектами на сетевых дисках?

Тестирую на такой команде:
cscript xcacls.vbs user1 /G DOMAIN\user1:F /O DOMAIN\user1/I ENABLE
Автор: Elroir
Дата сообщения: 04.10.2008 14:50
VidelSamogO

Цитата:
как запустить процесс из под одного CPU? Или как передать уже запущенный процесс определённому ядру

У CMD такой функциональности нет.
Автор: Nagual
Дата сообщения: 04.10.2008 14:55
cluster
юзай ashampoo core tuner
Автор: FXPELIVE
Дата сообщения: 04.10.2008 15:16
Помогите решить такую задачу:
надо переименовать несколько файлов вида name[1].gif в name.gif (т.е убрать из имени файла "[1]"). Заранее благодарен.
Автор: Elroir
Дата сообщения: 04.10.2008 15:35
FXPELIVE

Код:
@echo off
for /f "tokens=1,2,3 delims=[]" %%a in ('dir /b *[1].*') do ren %%a[%%b]%%c %%a%%c
Автор: Nagual
Дата сообщения: 04.10.2008 15:50
FXPELIVE
вариант
предполагается, что символы [] только в конце файла, иначе будет работать некорректно

Код:
@echo off&chcp 1251>nul
for
%%a in
(*.gif) do (
for /f "tokens=1 delims=[" %%b in ("%%a") do (
ren "%%a" "%%b.gif"))
Автор: FXPELIVE
Дата сообщения: 04.10.2008 16:41
Elroir, Nagual
Большое спасибо. Сработало
Автор: dimpase
Дата сообщения: 05.10.2008 14:24
KapralBel
Не понял, идентификатор это пробел чтоль?
Автор: Drunken_Master
Дата сообщения: 05.10.2008 15:38
VidelSamogO

Цитата:
Подскажите, пожалуйста, как запустить процесс из под одного CPU?

Можно воспользоваться psexec.exe из набора PsTools.


Цитата:
Или как передать уже запущенный процесс определённому ядру.
Это можно делать в PowerShell.
Автор: dimpase
Дата сообщения: 06.10.2008 09:48
----
01MDM
----
Что за параметр tokens??7
Если у меня таких строк очень много, то как надо писать?

Код: for /f "tokens=1 delims=>" %%i in ('type 1.html ^| findstr /I "ID=200.6"') do set "field_6=%%i"
Автор: tigran_astranet
Дата сообщения: 06.10.2008 13:39
А можно ли скопирнуть файлы на фтп посредством батника или только на сетевой диск, например X
Автор: KapralBel
Дата сообщения: 06.10.2008 14:50
tigran_astranet
FTP /?
Автор: Nagual
Дата сообщения: 06.10.2008 16:45
dimpase
Код:
for /l %%a in (1,1,10) do echo for /f "tokens=%%a delims=>" %%i in ('type 1.html ^| findstr /I "ID=200.6"') do set "field_6=%%i"
число 10 меняешь по вкусу
Автор: tigran_astranet
Дата сообщения: 06.10.2008 16:59
Спасибо вопрос решился.
Автор: Solenaja
Дата сообщения: 06.10.2008 17:50
king_stiven

Код: @echo off
for /f "tokens=*" %%c in ('dir /b /a:d /o:-n') do (
set subfolder=%%c
set count=1
set count1=2
call :begin
)
goto :eof
:begin
set folder=
:begin1
for /f "tokens=%count%,%count1%* delims=-" %%a in ("%subfolder%") do (
if defined folder set folder=%folder%-%%a
if not defined folder set folder=%%a
set /a count+=1
set /a count1+=1
if "%%c"=="" (
if "%%b"=="" (
goto end
) else (
goto Moving
)
)
goto begin1
)
:Moving
move "%subfolder%" "%folder%"
:end

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Сброс пароля администратора


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