更改两个日期的脚本

时间:2016-02-01 05:25:23

标签: powershell

我尝试使用PowerShell脚本更改文件内容中的开始日期和结束日期,但它将两个日期更改为相同。

class CTest
{
private: 
    int a = 0;
    BYTE b; CHAR* c; int d; int e; int f; int g;
public:
    CTest() b:(0)
    {
        c = 0;
    }
};

文本文件的内容是这样的:

http://www.google.com="Global History"&customer=guest&password=guest&STARTTIME=2016,01,30,00,00,00&STOPTIME=2016,01,30,00,00,00&POINTSEVERY=15 min&GRAPHTYPE=excel

1 个答案:

答案 0 :(得分:1)

您需要在开始日期之前替换结束日期,否则开始日期将与第一次更换后的结束日期相同。因此,第二次替换会将开始结束日期更改为新的结束日期值。此外,如果要在多个文件中进行替换,则无法将路径放在同一个变量中,以免第二个路径替换第一个路径。使用列表和foreach循环(或类似的东西)代替。

$paths = 'H:\oim\adcbsm007\adcbsm007.txt', 'H:\oim\alps027\alps027.txt'

$startOld = '2016,01,28'
$startNew = '2016,01,29'
$endOld   = '2016,01,29'  # == $startNew
$endNew   = '2016,01,30'

foreach ($p in $paths) {
  (Get-Content $p) -replace $endOld, $endNew -replace $startOld, $startNew |
    Set-Content $p
}