Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: sanni00015
Дата сообщения: 24.06.2009 15:46
Уважаемый, goletsa, спасибо.
Приношу свои извинения за беспокойство.
Автор: vitrzn
Дата сообщения: 25.06.2009 14:22
Помогите решить ещё одну задачку!
Как можно добавить к имени вложенной папки имя корневой папки:
.\123\
.\123\ab\
.\123\aa\
.\123\as\
ну и т.д.
надо
.\123\
.\123\ab_123\
.\123\aa_123\
.\123\as_123\


Добавлено:
HaK1R
СПС !!! как нельзя лучше !
Автор: Nushaba
Дата сообщения: 26.06.2009 11:30
Привет всем, подскажите пожалуйста, как реализовать следующее:
Батник раз в 10 минут проверяет наличие файла vl0.zip
Если файла не оказалось, скрипт закрывается.
Если файл есть, скрипт продолжается.

А продолжается вот что:
move /y C:\papka\Job\temp\vl0.zip E:\baza\CP\
C:\progra~1\1Cv77\bin\1cv7s.exe config /dC:\baza /nJob /p*****
/@C:\baza\Job\AutoExchage.prm
тут далее отправка почты, в общем всё это работает, но хочется реализовать автоматизацию, что бы само выполняло автообмен по почте без моего участия.
Автор: Fannat
Дата сообщения: 26.06.2009 13:34
Хочу добавить запись в реестр, но строка содержащая кавычки обрабатывается не так, как хотелось бы. Пробовал по аналогии с find, заменой одинарных кавычек на двойные - не помогает.
Исходная строка команды: reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v Proga /t REG_SZ /d ""\\server\Pro gi\proga.exe" /silent"

Можно попробовать заменить пробелы в пути на %20, но хотелось бы на будущее знать.
Автор: Lorusk
Дата сообщения: 26.06.2009 16:20
Помогите пожалуйста решить задачу.
Опишу ее в кратце:
Нужны два батника(или 1 не знаю поскольку не силен в их написании):
При запуске 1 выполняется работа по поиску на винчестере с буквой допустим Е:, определенных папок(screenshots,images, photos и т.д.) при их наличие поиска в них файлов (типа допустим jpg, bmp, gif) с их последовательным перенесением на другой диск для хранения , допусти H:. Нужно чтобы папки на нем создовались по типу :
(Имя новой папки)=(Путь старой папки без названия папки , являющейся критерием поиска)
H:\User123_12042009_Krim\*.*=E:\User123\12042009\Krim\photo
И 2 батник :
Он должен запускаться при подключении через интерфейс USB внешнего HDD допустим с буквой M:\ и выполнять операцию по копированию файлов с диска H:\ на него с сохранением структуры папок
Т.е. по сути синхронизировать структуру H:\ c M:\ по следующему принципу:
Если файла на диске M:\ нет то просто копировать его, если файл на диске есть(их имена совпадают) добавить к имени хранимого на M:\ _old, а затем скопировать новый файл с H:\
При следующих синхронизациях, если файлы снова совпадают по имени - повторить тот же процесс только с изменением _old на _old00 и так до 2-3 олдов( для возможности возврата к более ранним версиям)
Нужно для хранени в структурированном виде фоток и изображений, с возможностью возврата к более ранним версиям.
Еще былобы не плохо еслибы в конце после old Через _ была прописанна дата смены имени файла, легче будет ориентироваться когда был сделанн файл.

Заранее спасибо, тем кто поможет, сам я не в состоянии сделать это, не силен в программировании =((
Автор: ScreamWolf
Дата сообщения: 26.06.2009 18:17
01MDM
HaK1R


Цитата:
@echo off
1>nul ping -n 1 192.168.0.1 && (
    echo Пингуется
) || (
    echo Не пингуется
)

На сколько все просто оказалось - спасибочки работает!!!
Автор: 01MDM
Дата сообщения: 26.06.2009 18:47
Fannat

Код:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v Proga /t REG_SZ /d """"\\server\Pro gi\proga.exe""" /silent"
Автор: HaK1R
Дата сообщения: 27.06.2009 09:33
01MDM
Lorusk
Думаю ты имел ввиду

Код: @echo off

for %%a in (screenshots photos images) do (
for /f "tokens=*" %%b in ('dir /b /s /a:d "e:\%%a"') do (
pushd "%%b"
2>nul md "h:%%~pb"
for %%c in (*.jpg *.gif *.bmp) do copy "%%c" "h:%%~pb"
popd
)
)
Автор: 01MDM
Дата сообщения: 27.06.2009 09:44
HaK1R
Я в личке исправился Спасибо, что заметил.
Автор: madmasles
Дата сообщения: 28.06.2009 03:54
Подскажите, пожалуйста.
Есть first.cmd, который перебирает все содержимое своей папки и переносит в текстовый файл tekst.txt список имен всех файлов с расширением .exe (их количество меняется). При помощи какого кода, на основании этого списка, все эти файлы .exe по очереди запустить с двумя разными ключами в зависимости от наличия в имени двух разных чисел (2003 и 2007) из second.cmd, и как из first.cmd запустить second.cmd.
Заранее спасибо.

Система XP SP3.
Автор: Maza_Faka
Дата сообщения: 28.06.2009 07:34
madmasles

first.cmd

Код:
Call second.cmd
Автор: madmasles
Дата сообщения: 28.06.2009 07:45
Maza_Faka
Большое спасибо, буду пробовать.
Автор: madmasles
Дата сообщения: 29.06.2009 13:15
Maza_Faka
Еще раз огромное спасибо! Под себя чуть-чуть подогнал и все работает.
Можно еще вопрос.
Как можно определить различия у 2 файлов, если у них у обоих расширение .exe, но 1 - самораспаковывающийся архив, а другой нет.
Спасибо.

Автор: ssvgarry
Дата сообщения: 30.06.2009 02:34
Ребята помогите разобраться.... поставил тут сборку от BestXP 9.6.1... в принципе всё очень не плохо, но сталкнулся с такой проблемой... не хочет работать systeminfo.exe, выдаёт "ошибка:класс не зарегистрирован", всё бы ничего, но в свою очередь возникли проблемы при установке драйвера ADSL USB modem- драйвер не для данной ОС, затем не установить pre_SP4 - система не является Windows XP... короче те проги которые опрашивают систему через systeminfo, файл в системе, не порченый... все записи в реестре о системе есть.... в чём проблема не пойму, а уж тем более как лечить... рыл инет по systeminfo- только ключи, а как, куда он обращается не нашёл... конечно можно снести и поставить чистую XP, но жалко... может кто подскажет где и что копать или как вылечить эту проблему? Заранее спасибо, очень на Вас расчитываю!
Автор: Mikhaluch
Дата сообщения: 30.06.2009 14:52
Через командную строку можно на прямую узнать какой сервис пак стоит и нужно через батник это сделать. Если нет третьего, то ставить, а если нет ни какого то сначала второй потом третий.
Типа SET, есть такое для SP-ов?
Или только по папке $NtServicePackUninstall$ определять, как-то не "цивилизованно" ...
Автор: 01MDM
Дата сообщения: 30.06.2009 15:14
ssvgarry

Цитата:
выдаёт "ошибка:класс не зарегистрирован"


Какие-то проблемы с WMI, имхо. Что там "насобирали", могут и сами не догадываться.
Автор: HaK1R
Дата сообщения: 30.06.2009 21:27
Mikhaluch

Код: @echo off
for /f "tokens=1,2* skip=4" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDVersion') do (
if "%%c"=="Service Pack 3" (goto :EOF)
if "%%c"=="Service Pack 2" (goto :SP3)
)
:SP2
start /wait "" "C:\setup_SP2.exe"
:SP3
start "" "C:\setup_SP3.exe"
goto :EOF
Автор: DiZka
Дата сообщения: 01.07.2009 08:34
Подскажите плз команду для копирования скрытых файлов
Автор: Maza_Faka
Дата сообщения: 01.07.2009 10:05
DiZka

Код:
xcopy c:\file.txt d:\ /H
Автор: Mikhaluch
Дата сообщения: 01.07.2009 12:28
HaK1R
Спасибо. Отличный вариант.
Автор: Fannat
Дата сообщения: 01.07.2009 12:34
01MDM
Спасибо, работает.

To All
Хочу настроить автоматическое формирование подписи в почте у пользователей, в имеющийся шаблон записать данные из AD. Можно ли с помощью батника отредактировать файл (вставить пару строк)?

И ещё два вопроса: как указать, что надо обработать только вторую строку (из 3-х)? первую я исключил, но при обработке команды не работает параметр конца набора. И как убрать пробелы вначале и конце строки? (команда Dsget вставляет по два пробела )


Код:
for /f "skip=1 delims=*" %%a in ('"dsquery user -samid %username% | dsget user -dept"') do @Echo "%%a"
Автор: Nushaba
Дата сообщения: 01.07.2009 12:39
Проверку файлов в папке я сделал сам, разобрался, но есть ещё необходимость в одном батнике, который:
1. Проверял в папке файл и его размер
2. Если размер больше 1 мегабайта, переместить файл в папку ConfTemp

Вижу это примерно вот так:

Код:
if exist C:\LukiSQL\Job\temp\vl0.zip goto go
exit
:go
rename vl0.zip vl0.zip ///проверка на случай если файл находится в стадии копирования, если файл ещё не докопировался в эту папку, скрипт не сможет переименовать файл и даст ошибку
if not errorlevel 0 goto go
move /y C:\LukiSQL\Job\temp\vl0.zip C:\LukiSQL\Job\ConfTemp\
Автор: Mikhaluch
Дата сообщения: 01.07.2009 13:03
HaK1R
А в двух словах если не сложно можете описать выбор переменных, почему именно "а" для цикла , и "с" для сравнения?

Добавлено:
Почти понял.... Но буду благодарен комментарию.
Автор: 01MDM
Дата сообщения: 01.07.2009 16:23
Nushaba

Цитата:
1. Проверял в папке файл и его размер
2. Если размер больше 1 мегабайта, переместить файл в папку ConfTemp



Код:
pushd "C:\LukiSQL\Job\temp"
if exist "vl0.zip" (
for %%i in ("vl0.zip") do (
if %%~zi gtr 1048576 (move "vl0.zip" "..\ConfTemp")
)
)
popd
Автор: Fannat
Дата сообщения: 02.07.2009 10:43
01MDM
Работает на отлично. Спасибо.

To All
Есть ли возможность вставки данных в файл в определенную строку посредством командного файла?

Автор: Nushaba
Дата сообщения: 02.07.2009 10:45
01MDM
Спасибо большое, скрипт очень помог. Немного повозился, сделал под своё ТЗ и всё отлично работает. Хотел бы я до такого уровня подняться, жаль образование железнодорожное... Респект вам.
Автор: madmasles
Дата сообщения: 02.07.2009 13:22
Подскажите, пожалуйста.

Как при помощи кода скопировать из любого места и любого диска file.xla в "Системный диск"-"Program Files"-"Microsoft Office"-"OFFICE11"-"XLSTART"

Спасибо.
Автор: Nushaba
Дата сообщения: 02.07.2009 13:33
Сори за спам, появилась ещё одна цель, минимизировать количество батников.
Умеет ли батник в определённое время выполнять определённые действия?

Например с 8:00 до 18:00 делать первый скрипт, после 20:00 и до 6:00 делать другое, вот мой пример:

Код:
if exist C:\LukiSQL\Job\temp\vl0.zip goto go
exit
:go
rename vl0.zip vl0.zip
if not errorlevel 0 goto go
    pushd "C:\LukiSQL\Job\temp"
    if exist "vl0.zip" (
        for %%i in ("vl0.zip") do (
            if %%~zi gtr 1048576 (move /y "vl0.zip" "C:\LukiSQL\Job\ConfTemp"
            exit)
        )
    )
    popd
move /y C:\LukiSQL\Job\temp\vl0.zip C:\LukiSQL\CP\
C:\Progra~1\1Cv77\bin\1cv7s.exe config /dC:\LukiSQL /nJob /p342555 /@C:\LukiSQL\Job\AutoExchange_instruktion.prm
blat.exe -body " " -subject " " -to mail@mail.ru -attach C:\LikiSQL\PC\vl1.zip
Автор: Leshgan
Дата сообщения: 02.07.2009 16:05
Ребята, может не в тему, но есть задача печатать из командной строки много картинок из указанного в параметре каталога.
Делаю так:

Код:
if exist %1 (
FOR /F "tokens=* usebackq" %%i IN (`dir /b "%1\*.tif"`) DO rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo /pt "%1\%%i" "\\comp\printer"
)
Автор: Forales
Дата сообщения: 03.07.2009 10:04
программа, передает данные в Microsoft Excel и частенько процесс EXCEL.EXE остается в памяти в списке процессов, как написать командный файл, который бы убивал этот процесс, но не трогал другие процессы EXCEL .EXE которые есть в Списке задач?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


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