Переменная %var% должна быть изменена на !var!
» Командная строка, батники, сценарии (bat, cmd) 2
Помогите советом!
есть батник:
md \1\
md \2\2\
md \3\3\3\
потом идёт сортировка файлов по созданым папкам
но не всегда есть файлы которые нужно переместить в соот папку
и в итоге остаётся вложенная пустая папка
Вопрос! Как можно удалить пустую папку, в том числе и вложенную
В итоге должно остаться ТОЛЬКО папки с файлами.
есть батник:
md \1\
md \2\2\
md \3\3\3\
потом идёт сортировка файлов по созданым папкам
но не всегда есть файлы которые нужно переместить в соот папку
и в итоге остаётся вложенная пустая папка
Вопрос! Как можно удалить пустую папку, в том числе и вложенную
В итоге должно остаться ТОЛЬКО папки с файлами.
Maza_Faka, El Sanchez
Спасибо!
Оказалось, что я сам ступил
Спасибо!
Оказалось, что я сам ступил
vitrzn
Цитата:
Попробуй так:
Код:
@Echo Off
Set "Folder=c:\Test"
Call :SubDir "%Folder%"
GoTo :EOF
:SubDir
For /D %%B In ("%~1\*.*") Do (
Call :SubDir "%%B"
Dir "%%B" /B /A:-D>Nul 2>&1 || RD /Q "%%B">Nul 2>&1
)
Цитата:
Помогите советом!
Попробуй так:
Код:
@Echo Off
Set "Folder=c:\Test"
Call :SubDir "%Folder%"
GoTo :EOF
:SubDir
For /D %%B In ("%~1\*.*") Do (
Call :SubDir "%%B"
Dir "%%B" /B /A:-D>Nul 2>&1 || RD /Q "%%B">Nul 2>&1
)
Код:
...
SET mailer=c:\Program Files\The Bat!\thebat.exe
"%mailer%" "/MAILU=%OutBox%;QUEUE;TO=%ADDR%;S=%subj%;TEXT=%letter%;FILE=%MAttach%"
KYMichael
Цитата:
А если заключить переменную в кавычки?
Код:
SET "mailer=c:\Program Files\The Bat!\thebat.exe"
Цитата:
Такой код выдаёт ошибку
А если заключить переменную в кавычки?
Код:
SET "mailer=c:\Program Files\The Bat!\thebat.exe"
Maza_Faka
Да у него скорей всего, как обычно - enabledelayedexpansion в начале батника...
Да у него скорей всего, как обычно - enabledelayedexpansion в начале батника...
Подскажите, а как сделать так, чтобы можно было указать имя файла в unicode?
т.е. что-то вроед dir /.../греческие буквы/..../папка
т.е. что-то вроед dir /.../греческие буквы/..../папка
Maza_Faka
В самый раз !!!
СПС.
В самый раз !!!
СПС.
xitsa
Цитата:
Для этого необходимо запустить командную оболочку в юникодном режиме `cmd /u`. И шрифт тоже должен содержать эти символы (Lucida Console)
Цитата:
Подскажите, а как сделать так, чтобы можно было указать имя файла в unicode?
Для этого необходимо запустить командную оболочку в юникодном режиме `cmd /u`. И шрифт тоже должен содержать эти символы (Lucida Console)
Помогите!
Как сделать проверку %1?
т.е. необходимо проверить использовался ли дополнительный ключ при запуске батника, например "start.bat 1" или "start.bat 2" - если есть то использовать одну процедуру если же нет ключа то другую?
Помогите этот методп впоймать. Меня только хватило на описание всех возможных ключей, а как узнать есть ли он вообще?
Добавлено:
И еще один вопросик!
Как автоматизировать очистку лишних пробелов в тхт-файле вида [more]440800;31.01.2009; 74/440800;МАЛЕ ПРИВАТНЕ ПIДПРИЕМСТВО "ВИБIР";не платник; 50.00; 41.67; 8.33;;;;01.2009;001;;;;;0;1;[/more].
Пробелы встречаются в основном только в суммах .????
Как сделать проверку %1?
т.е. необходимо проверить использовался ли дополнительный ключ при запуске батника, например "start.bat 1" или "start.bat 2" - если есть то использовать одну процедуру если же нет ключа то другую?
Помогите этот методп впоймать. Меня только хватило на описание всех возможных ключей, а как узнать есть ли он вообще?
Добавлено:
И еще один вопросик!
Как автоматизировать очистку лишних пробелов в тхт-файле вида [more]440800;31.01.2009; 74/440800;МАЛЕ ПРИВАТНЕ ПIДПРИЕМСТВО "ВИБIР";не платник; 50.00; 41.67; 8.33;;;;01.2009;001;;;;;0;1;[/more].
Пробелы встречаются в основном только в суммах .????
Kilyan
Код:
@Echo Off
If "%~1"=="" (
Echo Called without param
) Else (
Echo Called with param: %1
)
Код:
@Echo Off
If "%~1"=="" (
Echo Called without param
) Else (
Echo Called with param: %1
)
Как вывести список поддиректорий определенной папки в чистом виде (каждая поддиректория в отдельной строке, без другой информации, получаемой при выполнении dir FOLDER >list.txt)?
rBBWYwg
Код:
Dir c:\windows /b /s
Код:
Dir c:\windows /b /s
Maza_Faka
Спасибо-все удачно!
И последний вопрос. Как проверить существование нескольких файлов с разными масками?
Наличие одного файла проверяю if exist <имя файла>
А как проверить сразу три и только в случае наличия всех-что то делать?
Можно ли это сделать компактно?
Спасибо-все удачно!
И последний вопрос. Как проверить существование нескольких файлов с разными масками?
Наличие одного файла проверяю if exist <имя файла>
А как проверить сразу три и только в случае наличия всех-что то делать?
Можно ли это сделать компактно?
Maza_Faka
Так просто, и так стыдно... Спасибо большое.
Так просто, и так стыдно... Спасибо большое.
Maza_Faka
Код: SET "mailer=c:\Program Files\The Bat!\thebat.exe"
Код: SET "mailer=c:\Program Files\The Bat!\thebat.exe"
KYMichael
disabledelayedexpansion сделай перед SET и отправкой почты.
disabledelayedexpansion сделай перед SET и отправкой почты.
igor_andreev
Цитата:
Ур-р-а-а! Заработало!
Спасибо!
P.S. рановато я обрадовался, теперь The Bat вызывается, но он чихать хотел на параметры переданные ему при вызове
Но это уже не сюда Вопрос
(главное с "!" решилось, ещё раз спасибо!)
Цитата:
disabledelayedexpansion сделай перед SET и отправкой почты.
Ур-р-а-а! Заработало!
Спасибо!
P.S. рановато я обрадовался, теперь The Bat вызывается, но он чихать хотел на параметры переданные ему при вызове
Но это уже не сюда Вопрос
(главное с "!" решилось, ещё раз спасибо!)
Цитата:
Как проверить существование нескольких файлов с разными масками?
Наличие одного файла проверяю if exist <имя файла>
А как проверить сразу три и только в случае наличия всех-что то делать?
Можно ли это сделать компактно?
Код: for %%N in (file1.ex1 file2.ex2 file3.ex3) do if not exist %%N exit
REM дальше то, что должно выполняться при наличии всех трёх файлов
BorlandIMHO
Все бы хорошо, но нужно б еще вывести каких файлов не хватает.
неплохо былобы как то с такой конструкцией
Цитата:
Чтоб можно в двух вариациях что то сделать!
Все бы хорошо, но нужно б еще вывести каких файлов не хватает.
неплохо былобы как то с такой конструкцией
Цитата:
If "%~1"=="" (
Echo Called without param
) Else (
Echo Called with param: %1
)
Чтоб можно в двух вариациях что то сделать!
Kilyan
Цитата:
Так сделайте! Вам же показали:
Код:
@Echo Off
for %%N in (file1.ex1 file2.ex2 file3.ex3) do (
if not exist %%N (
Echo File: %%N is not exists
) Else (
Echo File: %%N is exists
)
)
Цитата:
неплохо былобы как то с такой конструкцией
Так сделайте! Вам же показали:
Код:
@Echo Off
for %%N in (file1.ex1 file2.ex2 file3.ex3) do (
if not exist %%N (
Echo File: %%N is not exists
) Else (
Echo File: %%N is exists
)
)
Kilya
Цитата:
Цитата:
Например можно сделать так:
Код: @echo off
:: NoTot счётчик отсутствующих файлов
set NoTot=0
:: NoFil перечень отсутствующих файлов
set NoFil=
:: перебор элементов заданного перечня
for %%a in ( "f i l e 1 . e x 1" file2.ex2 file3.ex3 ) do call :ChkFile %%a
:: если всё в порядке - делаем то, что нужно
if %NoTot% == 0 goto IfAllOk
:: если чего-то нет - известим о факте
echo ! Missed %NoTot% file(s) [%NoFil% ]
goto :eof
:ChkFile проверка наличия, учёт отсутствия файла
if exist %1 goto :eof
:: если файла нет, запомним имя и увеличим счётчик
set NoFil=%NoFil% %1
set /a NoTot=%NoTot%+1
goto :eof
:IfAllOk действия при наличии всех файлов из списка
Цитата:
Как проверить существование нескольких файлов с разными масками?
Наличие одного файла проверяю if exist <имя файла>
А как проверить сразу три и только в случае наличия всех-что то делать?
Можно ли это сделать компактно?
Цитата:
нужно б еще вывести каких файлов не хватает.
Например можно сделать так:
Код: @echo off
:: NoTot счётчик отсутствующих файлов
set NoTot=0
:: NoFil перечень отсутствующих файлов
set NoFil=
:: перебор элементов заданного перечня
for %%a in ( "f i l e 1 . e x 1" file2.ex2 file3.ex3 ) do call :ChkFile %%a
:: если всё в порядке - делаем то, что нужно
if %NoTot% == 0 goto IfAllOk
:: если чего-то нет - известим о факте
echo ! Missed %NoTot% file(s) [%NoFil% ]
goto :eof
:ChkFile проверка наличия, учёт отсутствия файла
if exist %1 goto :eof
:: если файла нет, запомним имя и увеличим счётчик
set NoFil=%NoFil% %1
set /a NoTot=%NoTot%+1
goto :eof
:IfAllOk действия при наличии всех файлов из списка
NvvLazyTiger
Как раз то что нужно! спасиб.
Как раз то что нужно! спасиб.
есть ftp , с него качаю файлы все подряд.
надо делать выборку по датам или по времени изменения и перенаправить самые свежие в текстовый файл, а затем этот текстовый файл передать команде mget
Помогите в написании!
надо делать выборку по датам или по времени изменения и перенаправить самые свежие в текстовый файл, а затем этот текстовый файл передать команде mget
Помогите в написании!
vitrzn
Не проще ли воспользоваться wget?
Не проще ли воспользоваться wget?
Maza_Faka
Цитата:
БУМ юзать !
СПС за совет !!!
Цитата:
Не проще ли воспользоваться wget?
БУМ юзать !
СПС за совет !!!
Помогите найти ошибку!?
Код: SET i_month=""
if "%~1"=="" ( goto :IfAllOk ) else (
(set /A param = "%~1" ) & call :Chkparam %param%
)
:Chkparam проверка параметра
if %1 LSS 10 (Set i_month=0%param) else (set i_month=%1)
:IfAllOk
Echo %i_month%
pause
Код: SET i_month=""
if "%~1"=="" ( goto :IfAllOk ) else (
(set /A param = "%~1" ) & call :Chkparam %param%
)
:Chkparam проверка параметра
if %1 LSS 10 (Set i_month=0%param) else (set i_month=%1)
:IfAllOk
Echo %i_month%
pause
Kilyan
Цитата:
Зачем так сложно? (в тексте минимум одна ошибка - п/п :Chkparam не завершается оператором `goto :eof`)
Проще сделать так:
Код: SET i_month=%1
:: если параметра нет, сразу идём на метку
if NOT defined i_month goto IfAllOk
:: если в параметре один символ - приписываем слева цифру "0"
if %i_month:~1%. == . set i_month=0%1
:IfAllOk
if defined i_month (echo %i_month%) else (echo NO params!)
pause
Цитата:
Помогите найти ошибку!?
Зачем так сложно? (в тексте минимум одна ошибка - п/п :Chkparam не завершается оператором `goto :eof`)
Проще сделать так:
Код: SET i_month=%1
:: если параметра нет, сразу идём на метку
if NOT defined i_month goto IfAllOk
:: если в параметре один символ - приписываем слева цифру "0"
if %i_month:~1%. == . set i_month=0%1
:IfAllOk
if defined i_month (echo %i_month%) else (echo NO params!)
pause
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.