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

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

Автор: egor23
Дата сообщения: 12.06.2008 12:23
Нужно у нескольких файлов изменить время последнего изменения .

Есть ли возможность средствами Windows (по-умолчанию) менять:
время последнего изменения файла?

время последней изменения папки?
Автор: Chebat
Дата сообщения: 12.06.2008 13:49
2Elroir
Спасибо большое

Но не могу понять как сделать ежемесячный отчет.. Это задание в универ, принимал лабы вначале молодой парнишка, который сам ничего не знал как делать.. И мы с ним договорились, что я сдам без ежемесячного, а просто изменения между запусками батника. Но теперь он пропал, и принимает другой злой дядинька-преподователь...

Задание звучит так:
Бат-файл, который формировал бы ежемесячный отчет об изменениях в рабочем каталоге(файлы измененные)

Если кто поможет, буду очень благодарен
Автор: mozers
Дата сообщения: 12.06.2008 14:19
egor23
Никаких встроенных средств на эту тему нет
Для изменения дат (создания/изменения/доступа) файла существует достаточно много маленьких и бесплатных консольных и GUI-шных утилит. (я как то пользовал setdate). С датой каталогов - сложнее (утилит меньше и все - платные). Вот, например, такая.
Автор: igor_andreev
Дата сообщения: 12.06.2008 16:07

Цитата:
С датой каталогов - сложнее (утилит меньше и все - платные).

Не, есть бесплатные. Например консольная sft.exe (параметр /d) у автора regshot http://regshot.blog.googlepages.com/sft или nircmdc.exe (параметр setfilefoldertime) http://nirsoft.net/utils/nircmd.html
Автор: OldMichael
Дата сообщения: 12.06.2008 17:44
Chebat
Усли имеется ввиду в качестве коммандного процессора CMD ну от win2000, то можно


Код:
set month=%DATE:~6,2%
echo %month%
pause
Автор: AlexPetrovich
Дата сообщения: 12.06.2008 18:04

Цитата:
в ХП переменной %DATE% нет


Вообще-то есть...
Автор: Deep2007
Дата сообщения: 12.06.2008 18:18
Помогите решить такую задачу: есть файл (Отчетность.xlsx). Стоит задача его копировать через определенный интервал времени (скажем, 60 мин). Копирование происходит в пределах одного и того же компьютера. Система - WINDOWS XP HOME SP2.
Задача для пакетного файла:
1. Скопировать этот файл из C:\Обмен в C:\Резервная копия, причем там надо создать папку с именем формата (ГГГГ.ММ.ДД ЧЧ.ММ), т.е. время и дата копирования, и положить копируемый файл в нее.
2. Проверить количество ранее созданных папок с скопированными файлами Отчетность.xlsx, и если их ко-во больше 5 - удалить самую старую.

При нормальной работе должно накопиться 5 папок с этим файлом, скопированным через заданные интервалы времени.
Автор: OldMichael
Дата сообщения: 12.06.2008 18:54
AlexPetrovich

Так это выглядит в W2000

Код:
D:\temp>echo %date%
Чт 12.06.2008
Автор: Ex0dus
Дата сообщения: 12.06.2008 19:59
Уважаемые гуру, снова понадобилась ваша помощь нужен батничек следующего содержания:
1. на сетевом дискев папке Z:/files находит файлы с маской 100*.797 и удаляет все кроме того у которого дата создания СЕГОДНЯ.
2. удаляет с сетевого диска G:/storage все файлы с маской *.txt и *.001
3. распаковывает ARJ архив (100*.797 из 1-ого пункта) в G:/storage

спасибо!
Автор: Elroir
Дата сообщения: 13.06.2008 02:24
Chebat

Цитата:
Бат-файл, который формировал бы ежемесячный отчет об изменениях в рабочем каталоге(файлы измененные)

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

OldMichael

Цитата:
в ХП переменной %DATE% нет


Цитата:
а вот так в ХП

Сам себе противоречишь.

Deep2007
Что выдает команда "echo %date%_%time%" ?

Ex0dus
Что выдают следующие команды:
"echo %date%"
"echo 1>1.tmp & for %a in (1.tmp) do @echo %~ta & del 1.tmp"
Автор: Deep2007
Дата сообщения: 13.06.2008 12:25

Цитата:
Elroir



C:\Documents and Settings\Администратор>echo %date%_%time%
13.06.2008_12:22:02,12
Автор: a8sent
Дата сообщения: 13.06.2008 12:49
Всем привет!!! Ребята нужна помощь, буду весьма благодарен - изложу задачу вкратце:
Существует файлы записей телефонных разговоров вот такого формата:
2008_04_07_18_26_15_5E1
2008_04_07_18_31_13_824
2008_04_07_19_47_59_F75
Необходимо отсортировать их по времени и дате создания и распихать по соответствующим папкам.
Пример: 2008_04_07_18_26_15_5E1 -> С:\2008_04_07\
Если возможно выполнить данное условие, дайте пожалуйста описание.
Автор: Elroir
Дата сообщения: 13.06.2008 14:03
Deep2007

Код:
@echo off
setlocal
chcp 1251>nul
set "dirname=%date:~6,4%.%date:~3,2%.%date:~0,2% %time:~0,2%.%time:~3,2%"
md "C:\Резервная копия\%dirname%" 2>nul
copy "C:\Обмен\Отчетность.xlsx" "C:\Резервная копия\%dirname%\">nul
pushd "C:\Резервная копия\"
set "count=0"
for /f "tokens=*" %%a in ('dir /ad /o-d /b /tc') do (set "last_dir=%%a" & set /a "count+=1")
if %count% gtr 5 rd /q /s "%last_dir%"
soon 3600 cmd /c \"%~f0\" >nul
popd
Автор: JETWAY
Дата сообщения: 13.06.2008 14:59
Народ помогите, нужен батник, который при запуске выключит не ту машину, на которой запускаешь, а другую, которая в сетке находится. Права администратора на ту машину есть.
Автор: 01MDM
Дата сообщения: 13.06.2008 15:38
JETWAY


Код:
@echo off
shutdown -m \\Comp -s -t 0
Автор: KapralBel
Дата сообщения: 13.06.2008 15:38
JETWAY
ShutDown /?
Автор: JETWAY
Дата сообщения: 13.06.2008 16:32
Ага после \\ IP компа и дело в шляпе, спасибо большое.

Добавлено:
Просто надо быстро выключить.
Автор: jstudiO
Дата сообщения: 13.06.2008 22:16
Подскажите как автоматизировать добавление днс и шлюза в свойствах сетевого подключения.
Автор: lid111
Дата сообщения: 14.06.2008 03:46
Нужен батник - чтобы менял в Windows адрес расположения папки "Мои документы" для всех пользователей компа и переносил содержимое папок.
Новый адрес должен выглядеть так: "D:\ Документы Пользователь", где Пользователь - имя учетной записи.
То есть при учетных записях Вася и Петя на диске D должны образоваться две папки: "Документы Вася" и "Документы Петя", заполненные соответственно их документами.
На всякий случай добавлю, что батник должен нормально отрабатывать и на русской, и на английской винде, то есть исходная папка в Windows может иметь разные названия (рус. и англ.).
Автор: XXXXL
Дата сообщения: 14.06.2008 10:54
Здравствуйте ребята!
При запуске батника нужно заменить десятую строку в rip.txt на ту, что предварительно прописана для этого в батнике.
Спасибо!
Автор: 01MDM
Дата сообщения: 14.06.2008 11:49
XXXXL
Sed устроит?

Код:
@echo off
setlocal
set newString=Новая строка
sed -i "10 s/.*/%newString%/g" rip.txt
Автор: XXXXL
Дата сообщения: 14.06.2008 12:23

Цитата:
Sed устроит?

конечно
только почему то он не переписывает rip.txt а саздаёт файл без раширения sedDOSSUX и в нём уже переписывая 10 строка.


Автор: Elroir
Дата сообщения: 14.06.2008 12:33
XXXXL
Используй sed версии 4.1.5 - http://gnuwin32.sourceforge.net/packages/sed.htm
Автор: 01MDM
Дата сообщения: 14.06.2008 12:43
XXXXL

http://gnuwin32.sourceforge.net/packages.html

У меня отсюда. Недавно обсуждали. Это sed еще тянет пару dll, но более корректен в работе.

Но можно исправить батник


Код:
@echo off
setlocal
set newString=Новая строка
sed "10 s/.*/%newString%/g" rip.txt 1>rip.tmp
move /y rip.tmp rip.txt
Автор: XXXXL
Дата сообщения: 14.06.2008 15:27

Цитата:
Но можно исправить батник

вот этот бат как раз то, что мне и нужно было
Спасибо!
Автор: mrszorg
Дата сообщения: 14.06.2008 15:59
Всем здравствуйте!
Нужен батник, с помощью которого запускается прога.
Прога может запускаться в двух вариантах (назовем их 1 и 2 или Light и Full)
Так вот, в начале надо спросить у пользователя, как запускать будем? В легком режиме или полном (ну или там 1 или 2).
То есть чтобы пользователь отвечая нажал на клаву и выбрал вариант сам, причем, если ничего не выбрал, то чтобы по умолчанию запускался режим 1 (Light) - облегченный вариант.
Диалог был ну что-то типа этого:

Для продолжения выберите вариант 1 или 2: [1]

И тыкнув ENTER (или нажав 1) запуск варианта 1
Если нажал - 2 запуск во 2 варианте
Если нажмет чего-то не то, снова спросить

начал было, но споткнулся со значением по умолчанию

@echo off
set /p var=Enter var?
if %var%==1 goto light
if %var%==2 goto full

:light
echo you enter %numbe%
тут запускаем прогу
exit

:full
echo Выбран FULL
тут запускаем прогу
Автор: Elroir
Дата сообщения: 14.06.2008 16:38
mrszorg

Код:
set /p var=Enter var?
if "%var%"=="" goto light
if %var%==1 goto light
if %var%==2 goto full
Автор: mrszorg
Дата сообщения: 14.06.2008 17:04
2Elroir Точно! Все очевидное просто! Спасибо!

Код:
@echo off
:err
set var=1
set /p var=Enter var 1 or 2: [1]
if "%var%"=="" goto light
if %var%==1 goto light
if %var%==2 goto full
if not %var%==1 goto err
if not %var%==2 goto err

:light
echo you enter %var%
echo Light
pause
exit

:full
echo you enter %var%
echo Full
pause
Автор: Elroir
Дата сообщения: 14.06.2008 18:04
mrszorg
Вместо

Цитата:

if not %var%==1 goto err
if not %var%==2 goto err

можно просто поставить

Код: goto err
Автор: Ex0dus
Дата сообщения: 16.06.2008 00:11

Цитата:
Что выдают следующие команды:

можно немного разьяснить?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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