Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

articlebot (21-06-2016 11:40): Следующая часть - Командная строка, батники, сценарии (bat, cmd)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

nerutatarin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cls
@echo off
title Поиск файлов по заданной маске
::===========Присваиваем переменные======================
::Маска
Set /p mask="Введите расширение файла для поиска: *."
::Название папки
Set dirname=%mask%_files
::Путь до конечной папки
Set Kuda=C:\%dirname%
::=======================================================
::Проверяем наличие папки с таким же названием (dirname)
If not Exist "%kuda%\*.*" md %kuda%
 
setlocal enabledelayedexpansion  
set /p choice=Искать на всех дисках (0) или на одном (1)? (0/1)
if "%choice%"=="0" set NameDisk="C:\* D:\* E:\* F:\* G:\* H:\* I:\* J:\* K:\* L:\* M:\*"
if "%choice%"=="1" (
set /p NameDisk="Введите букву диска:"
set NameDisk="!NameDisk!:\*"
)
 
echo -----------------------------------------------------
echo --       Внимание! При выборе "переместить"        --
echo -- будет произведено удаление старых копий файлов  --
echo -----------------------------------------------------
set /p choice=Переместить (0) или Скопировать (1)? (0/1)
if "%choice%"=="0" set MC="xcopy /v/q/h/y"
if "%choice%"=="1" set MC="xcopy /v/q/h/y/z"
 
echo -------------------------------------------------------------
echo -- Производить операции с файлами следует с СОХРАНЕНИЕМ    --
echo -- структуры каталогов (каждый файл находиться в той       --
echo -- папке в которой он был изначально, до перемещения)      --
echo -- или БЕЗ СОХРАНЕНИЯ (все, найденные файлы скидать в      --
echo -- одну папку, при этом последующий файл со схожим именем  --
echo -- будет затирать предыдущий)?                             --
echo -------------------------------------------------------------
set /p choice=Не сохранять структуру (0) или сохранять (1)? (0/1)
if "%choice%"=="0" goto NoSaveStruct
if "%choice%"=="1" goto SaveStruct
 
::====================Искать на всех дисках==========================================================
::без сохранения исходной структуры каталогов
:NoSaveStruct
echo Идет поиск файлов, дождитесь окончания. Окно само закроется.
for /d %%a in (%NameDisk:~1,-1%) do
 if /i not "%%a"=="%kuda%" if /i not "%%a"=="%WINDIR%" if /i not "%%a"=="%ProgramFiles%" (
 pushd "%%a\" && (for /f "delims=" %%A in ('"dir /b/s/a-d *.%mask% 2>Nul"') do (
 %MC:~1,-1% "%%A" "%kuda%">Nul && if /i %MC%=="xcopy /v/q/h/y" del /f/q "%%A")
  popd))
for /f "usebackq delims=:\*" %%i in ('%NameDisk:~1,-1%') do (
xcopy /c/q/h/y "%%i:\*.%mask%" "%kuda%">Nul && if /i %MC%=="xcopy /v/q/h/y" del "%%i:\*.%mask%"
)
EndLocal)
exit
::с сохранением исходной структуры каталогов
:SaveStruct
echo Идет поиск файлов, дождитесь окончания. Окно само закроется.
for /d %%a in (%NameDisk:~1,-1%) do
 if /i not "%%a"=="%kuda%" if /i not "%%a"=="%WINDIR%" if /i not "%%a"=="%ProgramFiles%" (
 pushd "%%a\" && (for /f "delims=" %%A in ('"dir /b/s/a-d *.%mask% 2>Nul"') do (
 %MC:~1,-1% "%%A" "%kuda%%%~pA">Nul && if /i %MC%=="xcopy /v/q/h/y" del /f/q "%%A")
  popd))
for /f "usebackq delims=:\*" %%i in ('%NameDisk:~1,-1%') do (
xcopy /c/q/h/y "%%i:\*.%mask%" "%kuda%\%%i\">Nul && if /i %MC%=="xcopy /v/q/h/y" del "%%i:\*.%mask%"
)
EndLocal)
 
 
Собственно вот что мне удалось сделать, с помощью гугла конечно. выше постом я уже говорил что мне нужно...повторюсь из переменно NameDisk убрать символы :\* только тамгде выделено ЖИРНЫМ шрифтом. эта же переменная используется в другом месте выделено КУРСИВОМ, здесь мне как раз эти символы нужны, вот. Может у кого есть более рациональные идею на этот счет, помогите.

Всего записей: 12 | Зарегистр. 09-06-2012 | Отправлено: 13:53 09-06-2012
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
articlebot (21-06-2016 11:40): Следующая часть - Командная строка, батники, сценарии (bat, cmd)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru