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

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

Автор: mugil_cephalus
Дата сообщения: 16.11.2009 12:36
Sergey_AV
см. 65-ую страницу
Автор: Sergey_AV
Дата сообщения: 16.11.2009 12:50
mugil_cephalus

Цитата:
см. 65-ую страницу

Это касательно nircmd & hstart? Я имел ввиду немного другое: попадалось <здесь>, если ничего не путаю, альтернатива ping.exe - хотелось бы ее прямо в скрипте заменить.
Вы, если не ошибаюсь, просто предлагаете запускать скрипт с помощью вышеуказанных программ, а это немного "не то" - все равно окошко ping.exe вылезет наружу...
С таким же успехом можно заменить системный интерпретатор wscript на cscript - тоже без окошка (начального) получится.
Ищется решение...
Автор: mugil_cephalus
Дата сообщения: 16.11.2009 13:02
Sergey_AV
тогда не знаю
знаю еще про trayIt! , но она GUI-видима (в трее) и думаю вам не подойдет

Цитата:
альтернатива ping.exe
- в каком смысле альтернатива? поподробнее бы
Автор: Sergey_AV
Дата сообщения: 16.11.2009 13:06
mugil_cephalus

Цитата:
- в каком смысле альтернатива? поподробнее бы

Самому хотелось бы . Возможно, я напутал, но типа попадалась конструкция запуска (замены) ping.exe посредством того же nircmd. Сейчас специально посмотрел - нету у nircmd таких команд...
Возможно, это не nircmd был, а что-то другое...
Автор: mugil_cephalus
Дата сообщения: 16.11.2009 13:13
Sergey_AV
а реализована она была как сторонняя утилита (*.exe) или vbscript или autoit или wmic?
я знаю мощный интструмент для работы с сетью - netsh - но она OS build-in и я не встречал в ней возможности скрытия
Автор: Sergey_AV
Дата сообщения: 16.11.2009 13:21
mugil_cephalus
реализовано это было как фрагмент скрипта (батника) примерно как nircmd <чего-то там> <адрес> . Я ж говорю - не помню. Мелькнуло в мыле (подписан на эту ветку), а найти сейчас не могу. Возможно, читал по диаганоали - неправильно понял....

Цитата:
я знаю мощный интструмент для работы с сетью - netsh - но она OS build-in и я не встречал в ней возможности скрытия

Инструмент, конечно, хороший - как бы его приспособить в дело ещё? Скрипт сам, на который я ссылку приводил, видели? К сожалению, я не больно большой копенгаген в этой области - люди добрые подсобляли. Вот и хотелось бы, по возможности усовершенствовать...
Автор: mugil_cephalus
Дата сообщения: 16.11.2009 13:33
Sergey_AV
я сам в wsh не силен
а на Программирование "удобняшек" на VBScript http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=1491#1 - спрашивали?
Автор: Sergey_AV
Дата сообщения: 16.11.2009 13:39
mugil_cephalus

Цитата:
а на Программирование "удобняшек" на VBScript http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=1491#1 - спрашивали?

Нет. Надо спросить, пожалуй...
Автор: nValka
Дата сообщения: 16.11.2009 15:23
возможноли (и если да то как) в bat-файле разобрать строку по слова?
имеется строка "1111 222222 33333 44444" и нужно обработать слова в ней по отдельности.
Количество слов в строке заранее не известно. Подозреваю что нужно использовать for. но как заставить его перебрать все слова непойму.
Автор: kvanto2
Дата сообщения: 16.11.2009 15:52
Автор: Garrett
Дата сообщения: 16.11.2009 16:57
Есть утилита командной строки для смены даты создания у файла?
Автор: mugil_cephalus
Дата сообщения: 16.11.2009 17:05
Garrett
а поищи по поиску - точно где-то видел решение, уже не помню (или еще здесь поищи - Задачи на bat-файлах )
Автор: 01MDM
Дата сообщения: 16.11.2009 17:21
Garrett

Цитата:
Есть утилита командной строки для смены даты создания у файла?


Код:
nircmd setfiletime
Автор: nValka
Дата сообщения: 16.11.2009 23:00
01MDM
а ларчик та просто открывался. спасибо. а я зачемто c /F использовал.
Автор: MoBiRo
Дата сообщения: 17.11.2009 09:38
Есть папка и в ней файлы. Надо узнать дату самого старого файла и самого нового, переделать их в формат yyyy.mm.dd в две разные переменные.
Мне пока удалось найти самый старый файл и перевернуть его дату, а вот с самым новым проблема =(


Код:
@echo off
cd SameDir
dir /b /o:-d>filenames.tmp
for /f "tokens=*" %%I in (filenames.tmp) do set FILENAME=%%I & set FILETIME=%%~tI
set olddate=%FILETIME:~6,4%%FILETIME:~2,4%%FILETIME:~0,2%
erase filenames.tmp
cd %~dp0%
echo %olddate%
pause
exit
Автор: mugil_cephalus
Дата сообщения: 17.11.2009 10:13
01MDM
действительно все так прозаично -
Цитата:
а ларчик та просто открывался. спасибо. а я зачемто c /F использовал.
- и я думал про for /f delims=space и 52 токена
Автор: 01MDM
Дата сообщения: 17.11.2009 11:21
MoBiRo

Код:
@echo off
setlocal

for /f %%a in ('dir /b /o:-d') do (
    if not defined new (
        for /f "tokens=1-3 delims=. " %%i in ("%%~ta") do set "new=%%k.%%j.%%i"    
    ) else (
        set "old=%%~ta"
    )
)

for /f "tokens=1-3 delims=. " %%i in ("%old%") do set "old=%%k.%%j.%%i"

echo %new%
echo %old%
Автор: mugil_cephalus
Дата сообщения: 17.11.2009 12:49
01MDM

Цитата:
Строка может содержать подвыражения в кавычках и прочие непредсказуемости.

1 оператор ehco "вопринял" бы переменную итератора со значением - [кавычки]

n: 3 "text" 8

W:\>for /f "tokens=1-3" %a in ('type n') do echo _%a%b%c_

W:\>echo _3"text"8_
_3"text"8_

W:\>

2 а оператор set "вопринял" бы переменную итератора и со значением, включающим не только кавычки, но и спецсимволы < > & (кроме символа = )

W:\>for /f "tokens=3 delims=: " %i in ('"type n2"') do set "var1=%i"

W:\>set "var1=//login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563"><font"

W:\>set
...................
var1=//login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563"><font
windir=F:\WINDOWS

W:\>

Автор: 01MDM
Дата сообщения: 17.11.2009 13:37
mugil_cephalus
Я имел ввиду простой цикл for, например:

Код:
@echo off
for %%i in (111 222 "333 333" 444) do echo %%i
for %%i in (111 222"333 333"444) do echo %%i
Автор: Slonevg
Дата сообщения: 17.11.2009 17:01
Подскажите как прописать в батнике путь к другому батнику который находится в папке рядом, только он не конкретный (путь) флешка. Это вообще реально?
Автор: 01MDM
Дата сообщения: 17.11.2009 19:19
Slonevg

Код:
%~d0 - возвращает диск на котором находится батник
"%~d0\Path\To\batch2.cmd" - полный путь ко второму батнику
Автор: MoBiRo
Дата сообщения: 18.11.2009 09:11
01MDM
А вот если в папке только один файл, то %old% будет пустым! =(
Я не понимаю почему у меня не получается сделать:


Код: if %old% equ " " (
set %old%=%new%)
Автор: Garrett
Дата сообщения: 18.11.2009 09:46
01MDM
Спасибо за наводку на nircmd. Правда это работает если у файла не стоит рид-онли, т.е. перед изменением надо снимать защиту. А при защите ничего не меняет и никаких ошибок не даёт.
Автор: 01MDM
Дата сообщения: 18.11.2009 09:59
MoBiRo
У меня, если в папке только один файл, то %old% и %new% имеют одинаковое значение. Батник не изменял?
Автор: MoBiRo
Дата сообщения: 18.11.2009 10:36
01MDM
только setlocal удалил и сделал cd MyDirectory


Добавлено:
Вернул setlocal, ничего не изменилось, в %old% всё-равно пусто. Ты лучше скажи почему мой if выдаёт ошибку =(

Добавлено:

Цитата:
У меня, если в папке только один файл, то %old% и %new% имеют одинаковое значение. Батник не изменял?

Создал папку, закинул туда твой батик, дописал в него pause, запускаю - выводит только %new% дату самого батика, %old% - пусто =( Ничего не менял просто паузу в самом конце дописал. В папке только батик. Не знаю как у тебя это может работать.

Добавлено:
У тебя наверное в папке помимо бата ещё что-то было, у меня с одним файлом (самим батом) ничего не выходит, %old% пустой. Даже если сделать cd на папку, где всего лишь один файл-то он будет пустым... Кстати, твоя программа твой макрос почему-то не находит файлы с пробелами в имени. Мне это не надо, но если есть возможность, то надо бы исправить...
Автор: 01MDM
Дата сообщения: 18.11.2009 10:54
MoBiRo
Извиняюсь, просто я использовал `dir /b /o-d` без маски и батник прихватывал сам себя.
Измени так:

Код:
if "%old%" equ "" (set "old=%new%")
Автор: MoBiRo
Дата сообщения: 18.11.2009 11:13
Спасибо, работает =) Я не додумался %old% взять в кавычки)))

Добавлено:
В общем я тут пыхтел над одной штукой, которая вырезает из фотоаппарата фото и видео файлы и переносит на комп в нужную мне папку =)) Казалось бы всё очень просто, но вот нахождение даты файлов меня озадачило)) Может кому-нибудь пригодиться кодик, можно в шапку закинуть.

[more=Код макроса по вырезанию фото и видео файлов с фотоаппарата =) ]
Файл MyComputer.reg. Нужен для того, что бы автозапуск при открытии фотика в Мой компьютер срабатывал только на вашем компьютере. Вы же не хотите прийти в гости к другу, показать фотографии и случайно вырезать их с фотика на комп другу)))

Файл: MyComputer.reg
Автор: William Gates
Дата сообщения: 18.11.2009 12:06
Есть директория А в которой много поддиректорий 1,2,3 и т.д. и в них файлики с одним и тем же именем, напр. file.zip. Нужно скопировать каждый такой файлик в каталог В, в соответствующую поддиректорию (если файл был в каталоге 1, он и должен быть скопирован в каталог с именем 1), далее в директорию с текущей датой. Например, файл из каталога A\1\file.zip должен быть в каталоге В\1\13.11.2009\file.zip. Заранее благодарю.
Автор: Slonevg
Дата сообщения: 18.11.2009 14:43
01MDM
Не получается не чего.
Может не так объяснил? Попробую заново: флешка, на ней папка, в папке батник. Папка и батник называются пусть одинаково например: 1. Что надо написать в батнике который будет лежать на флешке рядом с папкой что бы он запустил батник находящийся в папке 1 и называется 1?
Автор: fipa
Дата сообщения: 18.11.2009 15:36
Добрый день. подскажите пожалуйста.
Такая проблема, нужно создать батник, что бы он создавал папку например C:\temp, а если она существует, делал проверку и добавлял к ней +1 т.е. temp1, temp2 и т.д.
Если уже такой вопрос был, не ругайтесь, а киньте ссылку на ответ. =)
Спасибо

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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