Подскажите с метасимволами

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
kondrik
Posts: 139
Joined: Tue 29 Mar, 2005 13:30
Has thanked: 2 times

Подскажите с метасимволами

Post by kondrik »

Подскажите как с помощью метасимволов задать текущий год, месяц и число.
Например нужно создать файл с именем используя вышеперечисленные метасимволы.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

kondrik
Posts: 139
Joined: Tue 29 Mar, 2005 13:30
Has thanked: 2 times

Post by kondrik »

Что-то у меня не выходит.
Подскажите как в командную строку вставить текущее время с помощью метасимволов?
Или как использовать данные метасимволы в пользовательском меню?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

kondrik, может стоит посмотреть в сторону "echo %time%"?

А так: macro:post $date "%T"
kondrik
Posts: 139
Joined: Tue 29 Mar, 2005 13:30
Has thanked: 2 times

Post by kondrik »

Skirda wrote:kondrik, может стоит посмотреть в сторону "echo %time%"?

А так: macro:post $date "%T"
Спасиб за оперативность.

Code: Select all

echo %time%
не подойдет, так, как нужно в формате выводить дату.
А

Code: Select all

macro:post $date "%T"
в принципе то что нужно.
А теперь как можно использовать эту дату?
Например нужно создать каталог:
md <имя_текущаядата>
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

Дарю :-)

Code: Select all

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\ShiftF7]
"Sequence"="%dt=date(\"%Y%m0%d\"); $If (fexist(%dt)) panel.SetPos(0,%dt) $Else F7 $Text %dt Enter $End"
"DisableOutput"=dword:00000001
"Description"="Создать каталог с именем текущей даты или спозиционировать туда курсор, если такой уже есть"
User avatar
CrOm
Posts: 1428
Joined: Tue 02 Aug, 2005 21:02
Location: Омск
Been thanked: 1 time

Post by CrOm »

и от меня спасибо :) классный макрось
FARFlipper, FARdroid, qPlayEx, Mr.Ripper
wolf
Posts: 1030
Joined: Fri 08 Apr, 2005 12:54
Location: Moscow

Post by wolf »

ещё на тему создания чего-то с датой:

REGEDIT4
[HKEY_CURRENT_USER\Software\Far\KeyMacros\Dialog\CtrlD]
"Sequence"="$date \"%Y-%m0-%d\""
"Description"="Date for F5/F6/F7, format ~2005-08-30"

макра CtrlD для подставления даты в строку стандартных диалогов.
а у ж копировать, делать каталог или файл - как юзеру понадобилось, в том диалоге и вызвал...
просто, зато однообразно и удобно.
ошибка — считать, что фар для пользователей. (с) zg
kondrik
Posts: 139
Joined: Tue 29 Mar, 2005 13:30
Has thanked: 2 times

Post by kondrik »

Skirda
HaRT
Спасисибо. Через реестр тоже подойдет.
Но моя задача через меню пользователя проверить если нет директории, то создать ее в формате "dir_2006_02_07" (используется текущая дата).
Это можно сделать?
Где можно найти инструкцию по написанию макросов, использованию макросимволов (желательно в виде файла).
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

kondrik, ну и ленивый ты, блин....

Учи матчасть:

Code: Select all

for /f "tokens=2-4 delims=/. " %a in ('DATE /T') do if not exist dir_%c_%b_%a mkdir dir_%c_%b_%a
kondrik
Posts: 139
Joined: Tue 29 Mar, 2005 13:30
Has thanked: 2 times

Post by kondrik »

Skirda
Вот теперь то что ожидалось. Большущее спасибо.
Подскажите - где можно найти соответствующие доки.
Было бы - сам разобрался.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

edit:<for /?
edit:<if /?
edit:<set /?

По батникам "пара" ссылок:
http://www.robvanderwoude.com/index.html
http://www.ericphelps.com/batch/
http://www.computerhope.com/batch.htm


Вот это будет полезным:

Code: Select all

@echo off
echo argument                %%1      =[%1]
echo fully qualified name    [%%~f1]  =[%~f1]
echo drive                   [%%~d1]  =[%~d1]
echo path                    [%%~p1]  =[%~p1]
echo drive and directory     [%%~dp1] =[%~dp1]
echo file name               [%%~n1]  =[%~n1]
echo file extension          [%%~x1]  =[%~x1]
echo file name and extension [%%~nx1] =[%~nx1]
echo short file name         [%%~sn1] =[%~sn1]
echo short file extension    [%%~sx1] =[%~sx1]
echo short file name and ext [%%~snx1]=[%~snx1]

echo file name and extension [%%~nx0] =[%~nx0]
echo %0
и вот:

Code: Select all

::Дотянуть недостающие файлы
::Есть два каталога: oldpacks - для старых файлов, 
::  packages - хранилище файлов. 
::Есть список файлов в файле filelist.txt.
setlocal ENABLEEXTENSIONS

move /y packages\*.* oldpacks\
cd packages
for /f %%f in (..\filelist.txt) do (
    if not exist ..\oldpacks\%%f (
        wget -c "http://citkit.dl.sourceforge.net/sourceforge/gnuwin32/%%f"
    ) else (
        move /y ..\oldpacks\%%f .
    )
)
cd ..
Last edited by Skirda on Tue 07 Feb, 2006 12:36, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

kondrik
for /?
date /?
if /?
mkdir /?

Skirda
Вообще-то формат вывода date зависит от Региональных настроек...
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

HaRT, а разве кто спорит?
Парень хотел идею - он ее получил (совладает или нет с информацией - не моя забота :-))
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

Skirda
Согласен

kondrik
Есть ещё отличная команда help
Post Reply

Return to “Нужна помощь”