Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216

Записать в текстовый файл размеры и имена файлов, размер которых больше заданного пользователем

17.09.2018, 15:39. Показов 3664. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
записать в текстовый файл размеры и имена файлов, размер которых больше заданного пользователем. файл открыть в редакторе, имя которого указал пользователь. путь к директории с файлами задает пользователь
PowerShell
1
2
$size=Read-Host
Get-ChildItem | Foreach-Object {if ($_.Length -lt $size) {Write-Output $_.Base.Name "," $_.Length >>19.txt}}
выводит просто имена всех файлов в текстовый файл. что не правильно?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.09.2018, 15:39
Ответы с готовыми решениями:

Записать в текстовый файл даты создания и имена файлов, размер которых меньше заданного
Добрый вечер, можно пожалуйста попросить Вас решить задачку, кому не сложно. Буду очень благодарен. Можно еще попросить Вас писать код...

Записать в текстовый файл все имена файлов в директории
Написать дополнительный файл, подключаемый к. cpp, который записывает в текстовый файл все имена файлов в директории и, соответственно,...

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

21
 Аватар для volodin661
6674 / 2267 / 346
Регистрация: 10.12.2013
Сообщений: 7,836
17.09.2018, 16:17
Лучший ответ Сообщение было отмечено YuS_2 как решение

Решение

PowerShell
1
gci $dir |? Length -gt $size | select Name, Length
1
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
17.09.2018, 16:18
Цитата Сообщение от dreems Посмотреть сообщение
$_.Base.Name
Цитата Сообщение от dreems Посмотреть сообщение
что не правильно?
Вместо $_.Base.Name нужно писать $_.BaseName
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
17.09.2018, 19:51  [ТС]
KDE777, даже если так, все равно выводит в текстовый файл имена всех файлов и без размера
0
 Аватар для volodin661
6674 / 2267 / 346
Регистрация: 10.12.2013
Сообщений: 7,836
17.09.2018, 22:09
Цитата Сообщение от dreems Посмотреть сообщение
KDE777, даже если так, все равно выводит в текстовый файл имена всех файлов и без размера
Ничего он у тебя не выводит, скорее всего, поскольку условие неправильное, а видишь ты в файле какой-то застрявший старый результат, поскольку режим вывода ты используешь >> - append
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
18.09.2018, 13:08  [ТС]
volodin661, а если использовать >?

Добавлено через 11 секунд
Тогда файл пуст
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
18.09.2018, 13:10
Цитата Сообщение от dreems Посмотреть сообщение
а если использовать >?
Добавлено через 11 секунд
Тогда файл пуст
Про это вам и написал volodin661

У вас условие:

Цитата Сообщение от dreems Посмотреть сообщение
размер которых больше заданного пользователем
А в коде проверка условия "меньше чем" $_.Length -lt $size
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
18.09.2018, 13:13  [ТС]
Get-ChildItem | Foreach-Object {if ($_.Lenght -got $size) {Write-Output $_.Lenght, $_.BaseName>26.txt}}
Тогда файл вообще не создается

Добавлено через 44 секунды
Опечатка
Там -gtKDE777,
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
18.09.2018, 13:21
Цитата Сообщение от dreems Посмотреть сообщение
Тогда файл вообще не создается
Значит нет фалов, попадающих под это условие.

И ещё во втором ответе volodin661 показал вам вариант без Foreach и if, в который осталось добавить только экспорт результатов:

PowerShell
1
gci $dir | ? Length -gt $size | select Name,Length | epcsv .\19.txt -Del ',' -NoType -enc UTF8
+ просто проверьте на экране консоли, что нужные файлы действительно существуют:

PowerShell
1
gci $dir | ? Length -gt $size
Добавлено через 2 минуты
Цитата Сообщение от dreems Посмотреть сообщение
$_.Lenght -got $size
Надеюсь, что -got это тоже опечатка
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
18.09.2018, 13:25  [ТС]
KDE777, помогите, пожалуйста исправить мой код. Даже если я в значение size заношу единицу, то файл все равно не создается
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
18.09.2018, 13:27
Цитата Сообщение от dreems Посмотреть сообщение
Даже если я в значение size заношу единицу, то файл все равно не создается
А просто на экран, как я писал выше, результат выводится?
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
18.09.2018, 13:33  [ТС]
KDE777, да
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
18.09.2018, 13:39
Цитата Сообщение от dreems Посмотреть сообщение
да
Тогда и в файл должно экспортироваться:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
$size = '1'
$dir = 'c:\temp'
$out = 'c:\temp\1.csv'
 
cls
# проверяем фильтр
gci $dir | ? Length -gt $size
 
# экспортируем
gci $dir | ? Length -gt $size | select Name,Length | epcsv $out -Del ',' -NoType -enc UTF8
 
# проверяем содержимое файла
gc $out
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
18.09.2018, 13:43  [ТС]
KDE777, через Get-ChildItem это нельзя написать?
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
18.09.2018, 13:48
Цитата Сообщение от dreems Посмотреть сообщение
через Get-ChildItem это нельзя написать?
gci это и есть алиас (сокращение) для Get-ChildItem

Добавлено через 2 минуты
PowerShell
1
Get-ChildItem -Path $dir | Where-Object {$_.Length -gt $size} | Select-Object -Property Name,Length | Export-Csv -Path $out -Delimiter ',' -NoTypeInformation -Encoding UTF8
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
18.09.2018, 14:09  [ТС]
KDE777,
PowerShell
1
2
3
4
$size=1$catalog=‘C:\Users\1$out=‘C:\Users\15.txt’
Get-ChildItem $catalog |Foreach-Object {if ($_.Length -get $size) {Write-Output $_.Length, $_.BaseName >>$out}}
почему так нельзя?
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
18.09.2018, 14:29
Цитата Сообщение от dreems Посмотреть сообщение
почему так нельзя?
Можно, "но зачем?!"

Зачем использовать Foreach и if, когда есть Where-Object? Да и связку Write-Output с перенаправлением >> можно заменить простым Add-Content или Export-Csv

Например:

PowerShell
1
$_.BaseName + "," + $_.Length | ac $out
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
18.09.2018, 14:30  [ТС]
KDE777, мне нужно так�� но не работает
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
18.09.2018, 14:40
Цитата Сообщение от dreems Посмотреть сообщение
мне нужно так�� но не работает
Очевидно, что тогда надо использовать работающий вариант
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
18.09.2018, 14:42  [ТС]
KDE777, мой нельзя исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.09.2018, 14:42
Помогаю со студенческими работами здесь

Из строк текстового файла получить имена файлов и записать их в отдельный текстовый файл
Доброго времени суток, имеется текстовый файл, порядка 7-ми или 8-ми тысяч строк 100157‡I:\INTERNET-SHOP\FOTOS\WALL\PIANCA\Puro.jpg ...

Записать имена и размер всех файлов каталога К в файл F (выбрать файлы с размером менее 100 Kb)
Записать имена и размер всех файлов каталога К в файл F (выбрать файлы с размером менее 100 Kb). Т.е. у меня есть файлы 2 erfsfs - 42 кб ...

Записать список всех файлов из каталога К, имена которых заканчиваются на цифру, в файл F
Помогите пожалуйста зделать 1 задание есть небольшие догадки но он записывает не то что нужно в файле. C:\Лаба\K>dir /B *1.* *2.*...

Дан текстовый файл Inlet.in, содержащий строковые величины S, значения которых - полные имена файлов, т.е. имя
Дан текстовый файл Inlet.in, содержащий строковые величины S, значения которых - полные имена файлов, т.е. имя диска, список каталогов...

В текстовый файл записать числа у которых чётных цифр больше чем нечётных
С клавиатуры вводятся числа признак конца ввода число равное 5. В текстовый файл записать числа у которых чётных цифр больше чем не чётных,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru