Sistem operasi saya adalah Windows 10.
Saya memiliki folder yang berisi satu file .txt. Di dalam setiap file terdapat baris yang diformat sebagai berikut:
2016-12-07 14:08:43 7.7 b = 123 r = 890
Saya mencari untuk membuat proses yang dapat direproduksi yang dapat saya jalankan yang akan melihat semua file dalam folder dan memberi saya nama file dalam file .txt dari semua file yang berisi 6.7
dan tanggal yang lebih besar dari tujuh hari yang lalu.
Skenario contoh:
File1 berisi: 2016-12-07 14:08:43 7.7 b=123 r=890
File2 berisi: 2017-01-24 14:08:43 7.7 b=123 r=890
File3 berisi: 2017-01-23 14:08:43 6.7 b=123 r=890
Saya menjalankan proses dan saya menerima file .txt terdiri: File3
Saya tidak tahu apakah ini dapat dilakukan dengan menggunakan baris perintah, PowerShell, atau jika upaya pengembangan penuh diperlukan untuk menyelesaikan tugas ini.
sumber
Jawaban:
Mengikuti skrip PowerShell
atau oneliner setara
Penjelasan dasar :
txt
fileGet-ChildItem
dan|
hasil pipa ke cmdlet berikutnyaForEach-Object
$aux=$_
(catat;
titik koma di oneliner)Get-Content
dan|
hasil pipa ke cmdlet berikutnyaForEach-Object
6.7
stringif ($_ -match '6\.7')
if ( [datetime] …
$aux.FullName
{
menggunakan serangkaian penutupan}
.sumber
Out-File
cmdlet . Baca lagi komentar David .Memperluas jawaban asli JosefZ, saya menemukan jawaban berikut lebih lengkap.
Sertakan berikut ini dalam file PowerShell:
sumber