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

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

Автор: V2driver
Дата сообщения: 28.02.2010 13:39
Вобщем нужно реализовать такой батник - по массовому переименовыванию файлов...
Поясню: вобщем имеется папка а вней wav файлы, но у них перед названием есть номер.. тоесть вот пример:
1 EN_TUT_EVENT2_NEW_01_PC.wav
2 RU_TAK_ACHIEVE4_02C.wav
3 RU_TOD_ACHIEVE2_02B.wav
4 RU_CLY_GOESTOLAST_01C.wav
И так у меня доходит нумерация до 2138.
Как видно нумерация идёт по порядку на название кажого файла разное..
Мне нужен такой батник который бы удалял номер перед названием!!!
Тоесть чтобы получилось так:
EN_TUT_EVENT2_NEW_01_PC.wav
RU_TAK_ACHIEVE4_02C.wav
RU_TOD_ACHIEVE2_02B.wav
RU_CLY_GOESTOLAST_01C.wav
Помогите пожалуйста, я уже незнаю где копать, пол инета перерыл((
Спасибо
Автор: 01MDM
Дата сообщения: 28.02.2010 15:07
V2driver
Проверить не могу, не под виндоус в данный момент. Попробуй:

Код:
@echo off
for /f "tokens=1,2" %%i in ('dir /b *.wav') do ren "%%i %%j" "%%j"
Автор: V2driver
Дата сообщения: 28.02.2010 16:07
01MDM
Сума сойти!! у меня нет слов!!!
Всё получилос!! а стоко парился=((
Спасибо огромнейшее!!!!
Жаль здесь нельзя +сики ставить(( а так бы заплюсовал досмерит))
Спасибо большущее!
Автор: december2010
Дата сообщения: 28.02.2010 18:21

Цитата:
december2010
http://forum.ru-board.com/topic.cgi?forum=2&topic=2922&start=16&limit=1 [?]
или

Код:
for /f "tokens=*" %%i in ('type G:\scripts\test\lst.txt') do 0>nul 1>>G:\scripts\test\lst2.txt set /p="%%i:"
pause


Спасибо! все отлично сработало!

Добавлено:
Чето не разберусь как записать символы "<" и ">" через echo в фаил.
Автор: 01MDM
Дата сообщения: 28.02.2010 18:43
december2010

Цитата:

Чето не разберусь как записать символы "<" и ">" через echo в фаил.

Заэкранировать:

Код:
1>file.txt (
echo ^<
echo ^>
)
Автор: december2010
Дата сообщения: 28.02.2010 18:51

Цитата:
01MDM

Точно. Просто забыл. )) Спасибо.
Автор: V2driver
Дата сообщения: 28.02.2010 23:03
И еще вопросик:
Я всё про ту же кучу вавок)
Мне бы все имена всех 2138 вавов вбить в txt документ)
Неподскажите что в батнике наклацать?? 01MDM
Автор: v1s
Дата сообщения: 01.03.2010 04:47
V2driver
Если вопрос не только к 01MDM, то
cmd /u /c for %%i in (*.wav) do @echo %%~ni >> list.txt
(без расширений), либо
cmd /u /c for %%i in (*.wav) do @echo %%i >> list.txt
(с расширениями).

Дополню: часть "cmd /u /c ", в принципе, необязательна - просто чтоб вывод в юникоде был.
Автор: ScreamWolf
Дата сообщения: 01.03.2010 16:19
mugil_cephalus
AkelPad не глючит (проверено в разнообразных редакторах)... самое интересное, что в какой бы не был кодировке батник, screnc.exe в любых случаях получает кривые символы вместо кириллицы.

В случае если батник, файл для кодирования и screnc.exe положить в корень диска, ответ о выполнении кодирования остается прежним

Вот батник:

Код: @echo off
screnc -f 1.txt
pause
Автор: gis170
Дата сообщения: 01.03.2010 17:01
Я не силен в написании батников, поэтому прошу помочь.
Суть такова: В Windows 7 при запуске от имени администратора срабатывает смд такого содержания:
slmgr.vbs /skms 127.0.0.1
start %WinDir%\1.exe
slmgr.vbs /ato

При этом на экране появляеться окно смд и вопрос о задании 127.0.0.1 с необходимостью ответа . Открываеться окно
C:\Windows\1.exe, которое потом закрываю вручную.в конце извещении о завершении процесса которое ждет нажатия кнопки.
Как паписать так чтобы это дело срабатывало в фоновом режиме.Что бы этот смд можно было запускать или через планировщик, или через групповые политики в сценариях завершения\ запуска работы?

Автор: ScreamWolf
Дата сообщения: 01.03.2010 17:14
gis170
не пробовал в конце батника команду exit.
А по поводу скрытого запуска см в шапке

А вот те интересный батничек - думаю разберешся

Код: @echo off
setlocal enabledelayedexpansion
echo Если Вы не укажите имя батника, то оно сгенерируется автоматически!
set /p bat=Введите имя создаваемого батника (можно без ".bat"):
set /p hide=0 - для запуска в скрытом режиме (по-умолчанию 1)[0/1]:
if "%hide%_"=="_" set hide=1
if "%bat%_"=="_" set bat=%random%%random%%random%%random%
set pathbat=%windir%\system32\%bat%.bat

::создаем батник в ..\system32\
echo.ping localhost >%pathbat%
echo.pause >>%pathbat%
call :SeeProcess

::создаем скриптик для запуска созданного батника
echo.var WSHShell = WScript.CreateObject("WScript.Shell");>%temp%\%bat%.js
echo.WSHShell.Run("%bat%.bat",%hide%);>>%temp%\%bat%.js
cscript //nologo "%temp%\%bat%.js"
del /q /f "%temp%\%bat%.js" >nul
cls

echo Запусщен батник по адресу %pathbat%
echo.
echo Нажать любую клавишу что бы убить запусщеный батник и удалить
pause >nul
call :KillProcess
del /q /f "%pathbat%" >nul
cls

echo Процасс убит, батник удален!
pause >nul
goto :EOF

:SeeProcess
::узнаем PIDы всех запущеных CMD.EXE
for /f "tokens=2" %%i in ('tasklist ^| findstr /b cmd.exe') do (
set "PROCESSOR_PID=!PROCESSOR_PID!,%%i"
)
set "PROCESSOR_PID=%PROCESSOR_PID:~1%"
goto :EOF

:KillProcess
::убиваем по новому PIDу кроме найденых заранее...
for /f "tokens=2" %%i in ('tasklist ^| findstr /b cmd.exe') do (
set "kill=1"
for /f "tokens=*" %%a in ('set PROCESSOR_PID ^| findstr "%%i"') do (
set "kill=0"
)
if !kill!==1 (taskkill /PID %%i 1>nul 2>&1)
)
goto :EOF
Автор: gis170
Дата сообщения: 01.03.2010 18:38
exit не дает результата.

Кое как сляпал на примере других:

@echo off
color 0a
rem * По окончании работы cmd - текст консоли изменит цвет с зеленого на cиний
echo.
echo ********************************
echo.
"%SYSTEMROOT%\System32\cscript.exe" "%SYSTEMROOT%\System32\slmgr.vbs" -skms 127.0.0.1
start %WinDir%\1.exe
"%SYSTEMROOT%\System32\cscript.exe" "%SYSTEMROOT%\System32\slmgr.vbs" -ato
TASKKILL /IM Keygen.exe
echo.
date /t
time /t
echo.
echo ********************************
echo.
color 0b
echo Press any key for exit..
pause>nul

Теперь вот в чем : строку TASKKILL /IM 1.exe оставить такой же или добавить /Т что бы получилось
TASKKILL /IM Keygen.exe /Т
Автор: v1s
Дата сообщения: 02.03.2010 02:56
gis170

Цитата:
Теперь вот в чем : строку TASKKILL /IM 1.exe оставить такой же или добавить /Т что бы получилось
TASKKILL /IM Keygen.exe /Т

Что делает параметр /T? С ним завершен будет не только указанный процесс, но и все, тем процессом порожденные. Если Keygen.exe сам никаких процессов не запускает, можно хоть использовать /T, хоть не использовать - разницы не будет.

PS: Зачем столько украшательств для работы в фоновом режиме?
Автор: gis170
Дата сообщения: 02.03.2010 07:23

Цитата:
PS: Зачем столько украшательств для работы в фоновом режиме?

Мне в конкретном случае нужно в фоне, а товарищ хочет использовать вручную. Типа решил сляпать универсальное.
И спасибо всем.
Автор: aguch
Дата сообщения: 02.03.2010 14:24
Уважаемые гуру - подскажите
в батничке:

set b=%USERNAME%_______
SET a=%b:~0,8%
echo xcopy "________.*" "C:\Documents and Settings\%USERNAME%\Application Data\Kodeks\Kodeks\%a%.*" /Y

можно ли сразу задать переменную а (в одну строчку)?
Автор: vitrzn
Дата сообщения: 03.03.2010 07:08
Есть задача.
В папке множество вложенных папок, нужно вместо этих папок создать файлы с названием папок.
Например:
папка "DFG" -> файл должен быть "DFG"
(т.е. точно также как и папка, без какого либо расширения)
ну а сами папки я так понимаю придётся удалить, т.к. файл и папка с одним именем не получится

Помогите решить!!!
Автор: aguch
Дата сообщения: 03.03.2010 10:17
vitrzn
первое что пришло на ум:

for /f "tokens=*" %%i in ('dir /b /AD') do (
rd %%i /S /Q
echo off > %%i
)
Автор: Widok
Дата сообщения: 03.03.2010 15:31

Лимит страниц. Продолжаем здесь.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


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