文件'MyFile.txt'中有一行,我需要替换该行的一部分。
示例:
文件中的行是这样的
53544THOIN91111160000000
我想从'MyFile.txt'中的现有行替换'111116',这里的东西是'111116'是一个变量并且会不断变化。它基本上是格式为YYMMDD的日期,我想从另一个文件读取修改日期并在'MyFile.txt'中替换这些数字
这是我试过的代码。
set b=MyFile.txt
for /f "tokens= 1" %%c in (%b%) do (set line=%%c)
Set OLDDate=%line:~11,6%
SET filename="AnotherFile.txt"
FOR %%f IN (%filename%) DO SET filedatetime=%%~tf
SET Month=%filedatetime:~0,2%
SET Date=%filedatetime:~3,2%
SET Year=%filedatetime:~8,2%
SET NEWDate=%Year%%Month%%date%
ECHO OLD DATE = %OLDDate%
ECHO NEW DATE = %NEWDate%
我需要将%OLDDate%
替换为位于~11,6的“MyFile.txt”中的%NEWDate%
答案 0 :(得分:0)
为什么powershell无法做到这一点?
# Example of PowerShell -replace parameter
clear-Host
$file = Get-ChildItem "D:\powershell\snippets\g*.txt"
foreach ($str in $file)
{
$content = Get-Content -path $str
$content | foreach {$_ -replace "the the", "the"} | Set-Content $str
}
write-Host "After replace `n"
$file
在foreach循环中,您可以将任何字符串替换为另一个字符串。
日期逻辑可以按如下方式使用:
$anotherfile = gi anotherfile.txt
检索日期信息
$year = $anotherfile.LastWriteTime.Year