Powershell खोज और स्ट्रिंग को अज्ञात समाप्ति के साथ प्रतिस्थापित करता है


0

मैं 03 01 2018 को एक अलग तारीख से बदलना चाहता हूं। निम्नलिखित या बेहतर कुछ के साथ:

----

$M = Read-Host -Prompt 'Input your MM'

$D = Read-Host -Prompt 'Input the DD'

$Y = Read-Host -Prompt 'Input your YY'

(Get-Content C:\Users\Desktop\file.txt) | ForEach-Object { $_ -replace "DOB=                ", "MM DD YY" } | Set-Content C:\Users\Desktop\file.txt

----

मुझे पता नहीं है कि यादृच्छिक तिथि कैसे खोजना है। इसके अलावा DOB = ** ** ** एक ही पंक्ति संख्या में नहीं है।

----

File.txt पूर्व:

FLOPPY=TRUE

CLOSETIME=0

OPENTIME=0400

EVENTTIME=0

DOB=03 01 2018         (I don’t know the date and it not base on the system date)

xxxxxxxx = 00 00 0000

xxxxxxxx = 00 00 0000

Variable 1

Variable 2

Variable 3

....

------

जवाबों:


1

इसका उपयोग करने की कोशिश कर रहा है:

(Get-Content C:\Users\Desktop\file.txt) | ForEach-Object { $_ -replace "\b(DOB=\d{2} \d{2} \d{4})\b", "MM DD YY" } | Set-Content C:\Users\Desktop\file.txt

यह काम करता है लेकिन एक छोटी सी समस्या। अन्य क्षेत्रों जैसे 00 00 000000 पर फ़्लॉपी। FLOPPY = TRUE CLOSETIME = 0 OPENTIME = 0400 EVENTTIME = 0 DOB = 03 14 2018 xxxxxxxx = 00 00 0000 xxxxxxxx = 00 00 0000
Laz

यह अन्य सभी क्षेत्रों को 00 00 0000 से बदल देता है
Laz

उपयोग \b(DOB=\d{2} \d{2} \d{4})\b विशेष रूप से "DOB = xx xx xxxx" पैटर्न खोजने के लिए।
shinjijai

$ M = Read-Host -rompt 'input your MM' $ D = Read-Host--Prompt 'इनपुट DD' $ Y = Read-Host -Prompt 'इनपुट अपने YYYY' (Get-Content C: \ Users \ Desktop) file.txt) | ForEach-Object {$ _ -replace "\ b (DOB = \ d {2} \ d {2} \ d {4}) \ b", "DOB = $ M $ D $ Y"} | सेट-कंटेंट C: \ Users \ Desktop \ file.txt
Laz

जवाब स्वीकार करें अगर यह आपके लिए काम करता है :)।
shinjijai
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.