Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 9

Автор: BagaBaga
Дата сообщения: 21.10.2010 09:29
Спасибо! Именно оно!
Автор: Romanchikprivet
Дата сообщения: 21.10.2010 12:45
wolf0425, спасибо все заработало, после шаманских деяний
Автор: manstopper
Дата сообщения: 21.10.2010 15:40
Поиском не могу найти такую вещь. Как переименовать все файлы *.xxx в *.yyy во всех вложенных папках. Имя чтобы осталось неизменным. Заранее спасибо.
Автор: bomzzz
Дата сообщения: 21.10.2010 15:45
ren *.xxx *.yyy
Автор: manstopper
Дата сообщения: 21.10.2010 16:06

Цитата:
ren *.xxx *.yyy

если бы все так просто было, я б сюда не писал
во вложенных папках так не берет
Автор: bomzzz
Дата сообщения: 21.10.2010 16:08
тогда делай через FOR.
Автор: manstopper
Дата сообщения: 21.10.2010 16:10
for /f "tokens=*" %%a in ('dir /b /s *.zzz') do ren %%a *.ttt
пишет ошибка в синтаксисе
в чем ошибка моя?
Автор: bomzzz
Дата сообщения: 21.10.2010 16:18

Цитата:

ECHO OFF
COLOR 9F
CLS
FOR /R "%~DP0" %%I IN (*.*) DO (
if %%~xI==.yyy REN "%%I" "%%~nI.xxx"
)
pause
Автор: manstopper
Дата сообщения: 21.10.2010 16:23
bomzzz
ошибка в синтаксисе пишет
в моей строке проблему нашел
при наличии пробелов в пути - ошибка
если пробелов нет, то работает

Update: Все работает, спасибо тебе огромное! Просто скопировал неправильно со страницы.

Update2:
king_stiven


Цитата:
FOR /R %%I IN (*.xxx) DO REN "%%I" "%%~nI.yyy"


И твой вариант прекрасно работает, спасибо
Автор: bomzzz
Дата сообщения: 21.10.2010 16:24
*.ttt - ошибка тута

Добавлено:
ну кавычки еще нуны. у себя я исправил. вроде работает

Добавлено:
"%%I" "%%~nI.xxx" так же сделкай, только у тебя /b это имена без путей
Автор: king_stiven
Дата сообщения: 21.10.2010 16:53
manstopper

Код: FOR /R %%I IN (*.xxx) DO REN "%%I" "%%~nI.yyy"
Автор: LikvidatorMax
Дата сообщения: 22.10.2010 19:39
Цикл
For /R %%i In (%Ext%) Do (
)
Просматривает все файлы в глубину.
Но немного не пойму как из %%i (там имя файла) вытащить путь.

Нашел про %~p, но если я правильно понимаю, то это не работает для такой переменной.

Подскажите, как лучше сделать.
Автор: wolf0425
Дата сообщения: 22.10.2010 19:49

Цитата:
Но немного не пойму как из %%i (там имя файла) вытащить путь.

for /r %%i in ( *.txt ) do echo path=%%~dpi file=%%~nxi
Автор: BagaBaga
Дата сообщения: 22.10.2010 19:59
Не подскажете, как с помощью sed преобразовать строчки вида

1/первый, второй/
2/третий, четвертый, пятый/

к виду
первый 1
второй 1
третий 2
четвертый 2
пятый 2
Автор: wolf0425
Дата сообщения: 22.10.2010 20:33
BagaBaga
придумать как зацикливать мне пока лень, для макс=трех параметров в строке проще тупо влоб:

Код: sed -r "s#([0-9])/([^ ]*), ([^/]*)/#\2 \1\n\1/\3/#gi;s#([0-9])/([^ ]*), ([^/]*)/#\2 \1\n\1/\3/#gi;s#([0-9])/([^/]*)/#\2 \1#gi" <1.txt
Автор: BagaBaga
Дата сообщения: 22.10.2010 22:13
Ок. Спасибо!

Еще один вопрос: в коде понадобилось кое-что модифицировать - перед всеми скобками добавить содержимое переменной %%g
Попробовал заменить echo. на echo %%g. , но не помогло. В %%g хранится имя папки, например, "Параметры:"
Автор: wolf0425
Дата сообщения: 22.10.2010 23:07

Цитата:
но не помогло. В %%g хранится имя папки, например, "Параметры:"
ты уверен что у тебя переменная %%g а не %g% ??
приведи код который у тебя не работает.

Автор: BagaBaga
Дата сообщения: 23.10.2010 00:34
Переменная с двумя %, т.к. запускается из батника...

Код:
for /D %%g in (a??) do (
    for %%a in (.\%%g\auth.1,.\%%g\title.1) do for /f "usebackq delims=" %%i in ("%%~a") do 0>nul set /p="[%%i]"
    echo[%%g].

)
Автор: SAOPP
Дата сообщения: 23.10.2010 11:46
Ребят, подскажите.

Есть необходимость перерасшаривать папку, из-за того, что по всему видимому нарушается по каким-то причинам наследования того самого расшаривания - из-за чего, смотря в папку из другой машины, некоторые подкаталоги оказываются пустыми...

Решается это дело следующим образом:
1. отменить расшаривание папки, к примеру d:\folder\
2. запуск команды icacls d:\folder\ /reset /T /C - которая и решает проблему наследования очищая атрибуты
3. заново расшарить каталог d:\folder\ с добавлением к нему соавтора Гость

Побегав по хелпу, как-то не понял момент с расшариванием через cmd, ткните носом пожалуйста, заранее спасибо
Автор: wolf0425
Дата сообщения: 23.10.2010 14:15
BagaBaga
Цитата:
Собственно, была надежда, что [имя папки] появится до двух склееных строк, но в реальности - позже и без одной "["
выводит ровно то, что написал.
а хотел написать вот это:

Код: @echo off
for /D %%g in (a??) do (
    0>nul set /p="[%%g]"
    for %%a in (.\%%g\auth.1,.\%%g\title.1) do for /f "usebackq delims=" %%i in ("%%~a") do 0>nul set /p="[%%i]"
    echo.
)
Автор: lid111
Дата сообщения: 24.10.2010 06:13
Задача, наверное, пустячная для знатока: нужен скрипт, который пересохраняет все текстовые файлы в указанном каталоге (или в каталоге где находится) в кодировке 866 (файлы имеют расширение lst, хотя это, пожалуй, неважно?).
Автор: bomzzz
Дата сообщения: 24.10.2010 06:17
lid111
http://www.alonewolfsoft.narod.ru/page04.htm
Автор: lid111
Дата сообщения: 24.10.2010 06:29
оперативненько, спасибо.

Добавлено:
bomzzz, нет, не годится - там только txt-файлы обрабатывает
Автор: bomzzz
Дата сообщения: 24.10.2010 06:44
переименуй батником сначала туда потом обратно
Автор: lid111
Дата сообщения: 24.10.2010 06:47
и батник, и GUI использовать - зачем так сложно?
Автор: bomzzz
Дата сообщения: 24.10.2010 06:47
вроде конвертирует, пробуй

ECHO OFF
COLOR 9F
CLS
type *.lst>*.txt
del *.lst
ren *.txt *.lst
pause
Автор: lid111
Дата сообщения: 24.10.2010 07:27
bomzzz, не знаю, что и куда конвертирует, но все файлы в папке исчезли и сообщение: "Синтаксическая ошибка в имени файла..."
Автор: bomzzz
Дата сообщения: 24.10.2010 07:34
type *.lst>*-1.lst

так сделкай
Автор: res2001
Дата сообщения: 24.10.2010 08:24
bomzzz
Что это вдруг type должна что-то перекодировать?
lid111
Воспользуйся любым перекодировщиком командной строки, их полно в инете, например тут
Автор: bomzzz
Дата сообщения: 24.10.2010 08:33
сам не знаю


Добавлено:
а понил - потому что исходный в юникоде.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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