Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Необходимо сделать два батника,подскажите ошибки

Ответить
Настройки темы
CMD/BAT - Необходимо сделать два батника,подскажите ошибки

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: CyberNoble
Дата: 23-10-2019
Описание: Выделил код,нашел решение на первое
Нужно создать батник,который копирует все файлы в расширении .txt ,кроме одного ,который задан в параметре %2,в директорию ,заданную параметром %1
Сделал вот такой
Код: Выделить весь код
@echo off
REM вывод каталога
FOR %%a IN (*.txt) DO IF NOT %%a == %2 COPY %%a %1
Но он копирует все файлы в формате txt,думаю,что проблема в 99% в том,что я не так использую IF в цикле.Нужно именно через цикл

И второе задание такое,что нужно написать пакетный файл, который автоматически удалял бы в каталоге, указанном в командной строке все файлы, размер которых превышает 2 Мбайт.
Была идея сделать через сортировку по размеру в dir ,а потом в find,но дир просто по порядку их делает,там нельзя сделать так,чтобы файлы не удовлетворяющие размеру не показывались,поэтому пока не выходит.У одногруппника идея была,что нгужно создать переменную с размером,и сравнивать с ней,но мы так и не знаем как сделат ьпо уму

P.S. Сделал первое,оказывается я тупой,нужно было писат ьв консоль не просто параметр имя файла,а имя с расширением

Отправлено: 16:43, 23-10-2019

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата CyberNoble:
И второе задание такое… »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=%~1

if defined sSourceFolder (
	if exist "%sSourceFolder%" (
		set /a iMaxSize = 2 * 2^<^<20
		
		for /f "usebackq delims=" %%i in (`2^>nul dir /b /a:-d "%sSourceFolder%\*.*"`) do (
			if %%~zi gtr !iMaxSize! echo del /f /q "%%~i"
		)
	) else (
		echo Can't find source folder [%sSourceFolder%].
		exit /b 2
	)
) else (
	echo Usage: %~nx0 ^<Source folder^>
	exit /b 1
)

endlocal
exit /b 0
Для реального удаления уберите выделенное.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:03, 23-10-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


(*.*)


Сообщения: 36561
Благодарности: 6694

Профиль | Сайт | Отправить PM | Цитировать


2019 год, а все еще батникам в виндах учат :) Лучше б пошику учили.
"Батник"
Код: Выделить весь код
powershell -noprofile -command "dir -Path c:\temp -File | where {$_.Length -gt 2097152} | %{del $_.FullName -WhatIf}"

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:27, 25-10-2019 | #3


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1218
Благодарности: 509

Профиль | Отправить PM | Цитировать


Цитата Vadikan:
Лучше б пошику учили. »
Видимо, кто может - не хочет, а кто хочет - не знает...
Диалектика революции шелов, блин... ну, почти

-------
scio me nihil scire. Ѫ


Отправлено: 11:38, 25-10-2019 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Vadikan:
2019 год, а все еще батникам в виндах учат Лучше б пошику учили. »
Тут нужно желание вопрошающего учиться. Я вон регулярно советую, да толку-то…

Отправлено: 16:13, 25-10-2019 | #5


Аватара для Charg

Ветеран


Сообщения: 2798
Благодарности: 469

Профиль | Отправить PM | Цитировать


Цитата Iska:
Тут нужно желание вопрошающего учиться. »
А тут разве кто-то из вопрошающих спрашивал "научите как сделать?". Ну, за редкими исключениями, конечно...
99% тем это "мне надо вот так, запилите чтоб я скопипастил и оно работало".
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:46, 25-10-2019 | #6


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


на cmd тоже можно в одну строку:
Код: Выделить весь код
@echo off
for /f "delims=" %%a in ('dir /a-d/b/s "%~1"') do for /f "tokens=3" %%b in ('dir /-c "%%a"^|findstr /rc:"^  .*"^|set /p #^=^^^& cmd /v/c echo:!#!') do if %%b gtr 2097152 >nul 2>&1 del "%%a"
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:09, 25-10-2019 | #7


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6626
Благодарности: 1528

Профиль | Отправить PM | Цитировать


Задание первое:
Код: Выделить весь код
$parameter1 = "C:\Users\User\Documents"
$parameter2 = "слово-для-исключения"
dir "C:\temp\*.txt" -Exclude "*$parameter2*" |Copy-Item -Destination "$parameter1"
Задание второе:
Код: Выделить весь код
(dir "C:\temp").where{$_.Length -gt 2MB} |Remove-Item -Confirm:$false
Это всё Powershell.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:15, 25-10-2019 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


DJ Mogarych, вижу, что это:
Цитата DJ Mogarych:
Код: Выделить весь код
(dir "C:\temp").where{$_.Length -gt 2MB}
»
работает, но не пойму, как.
Код: Выделить весь код
Get-ChildItem -Path "C:\temp"
возвращает один объект или массив объектов. Что такое «.where {…}»? Судя по точке, это должен быть метод или свойство, но чего именно? И фигурные скобки?! Не соображу.

Отправлено: 21:14, 25-10-2019 | #9


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата Iska:
Что такое «.where {…}»? »
это сокращенно от Where-Object, насколько я понимаю.

Отправлено: 21:58, 25-10-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Необходимо сделать два батника,подскажите ошибки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Нужно объединить два батника в один BKPB Скриптовые языки администрирования Windows 3 12-07-2019 13:08
Прочее - [решено] Необходимо соединить два компьютера Pemaktitkis Сетевое оборудование 4 21-09-2010 07:58
CMD/BAT - [решено] Необходимо помощъ в написании батника для удаления столбцов из текстового файла. francke Скриптовые языки администрирования Windows 7 02-04-2010 15:32
GPO: ошибки выполнения батника при загрузке системы (запуск сценариев) Hooty Microsoft Windows NT/2000/2003 15 24-02-2009 13:31
подскажите ,  какие составляющие необходимо приобрести для с Sola Программирование и базы данных 3 24-07-2003 18:22




 
Переход