Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2009, 19:16   #11
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

Serge_Bliznykov
Цитата:
наберите в командной строке HELP FOR и почитайте...
А по твоему я раньше туда через астрал заходил?

Arigato
Цитата:
И это в хэлпе написано русским языком. Замена на %% нужна, т.к. %0-%9 заняты переменными, переданными через командную строку, а %%0-%%9 могут использоваться в циклах.
%b вроде не лежит в промежутке от 0 до 9ти.

Как сотворить папку, с пробелами в названии - с помощью mkdir?
jojahti вне форума Ответить с цитированием
Старый 23.09.2009, 19:31   #12
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Цитата:
Сообщение от jojahti
Как сотворить папку, с пробелами в названии - с помощью mkdir?
Использовать кавычки.
Arigato вне форума Ответить с цитированием
Старый 23.09.2009, 19:48   #13
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

C copy кавычки работают, с mkdir - нет. По прежнему создаётся папка по первому слову.
jojahti вне форума Ответить с цитированием
Старый 23.09.2009, 21:27   #14
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Странно, у меня всё работает.
Arigato вне форума Ответить с цитированием
Старый 23.09.2009, 22:14   #15
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

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

Оно в перспективе должно синхронизировать содержимое определённых каталогов на компе и на флэшке.

Код:
ECHO off
CLS
COLOR 30

FOR %%b IN (e:\documents\*.*) DO ( 
  ECHO operation file %%b
  IF NOT EXIST c:\documents\%%~nxb (
    COPY "%%b" c:\documents\
) ELSE (
  ECHO file "%%~nxb" found
)

)
ECHO =====================================
FOR /D %%d IN (e:\documents\*.*) DO ( 
  ECHO full  name %%d
  ECHO short name %%~nxd
  
  IF NOT EXIST c:\documents\%%~nxd (
    ECHO create DIRECTORIES
    MKDIR c:\documents\%%~nxd 
) 
 
  FOR %%e IN (e:\documents\%%~nxd\*.*) DO (
     IF NOT EXIST c:\documents\%%~nxd\%%~nxe (
     COPY "%%e" c:\documents\%%~nxd
    )
  )  
)
PAUSE
jojahti вне форума Ответить с цитированием
Старый 23.09.2009, 22:18   #16
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Так и пишите:
MKDIR "c:\documents\%%~nxd"
Arigato вне форума Ответить с цитированием
Старый 23.09.2009, 22:23   #17
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

Ой. 0_0 А я почему-то был уверен что так не работает.
jojahti вне форума Ответить с цитированием
Старый 23.09.2009, 22:31   #18
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Цитата:
Сообщение от jojahti
А я почему-то был уверен что так не работает.
Честно, мне трудно даже представить, какие могут быть там другие варианты Но лучше не приводите их, а то бессонная ночь мне будет обеспечена.
Arigato вне форума Ответить с цитированием
Старый 24.09.2009, 18:46   #19
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

Ну я их пробовал складывать, как строковые переменные, выделять только переменную часть. Игрался с параметрами, и уж начал реализовывать идею по записи всего в текстовый файл, а затем уже обработке сторонними средствами, и чтением скриптом полученных из него результатов, но ты меня вразумил, за это тебе и плюс. )
jojahti вне форума Ответить с цитированием
Старый 24.09.2009, 20:31   #20
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Цитата:
Сообщение от jojahti
Ну я их пробовал складывать, как строковые переменные, выделять только переменную часть. Игрался с параметрами, и уж начал реализовывать идею по записи всего в текстовый файл, а затем уже обработке сторонними средствами, и чтением скриптом полученных из него результатов
Переменные в CMD по сути являются макросами, т.е. при обработке строки:
MKDIR "c:\documents\%%~nxd"
командный интерпретатор сначала тупо заменит все встретившиеся переменные (в любой части строки), а затем будет её интерпретировать как команду.
Причем переменная может выступать в любом качестве, даже в качестве команды, например:
Код:
set cmd=dir
%cmd%
Выведет на экран содержимое каталога, т.е. строка %cmd% при интерпретации превратится в dir, а только потом будет исполнена.
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы с расширением .bat Axell Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 30.05.2009 11:59
bat файлы, но по-русски Хамяг Помощь студентам 2 03.11.2008 17:02
DOS. .*bat файлы. их функции Xeon332 Помощь студентам 2 08.05.2008 14:46
Как создавать закладки? raz Общие вопросы Delphi 5 31.03.2008 13:26
*.bat файлы [Smarik] Помощь студентам 2 03.02.2008 19:26