我正在编写一个脚本,它基本上会执行以下操作:
从文本文件中读取一些参数:
DriveLetter ThreeLetterCode ServerName VolumeLetter Integer
例如。W MSS SERVER01 C 1
这些值恰好形成了一个文件夹目标W:\MSS\
,以及一个遵循以下命名约定的文件名:
SERVERNAME_VOLUMELETTER_VOL-b00X-iYYY.spi - Where The X is the Integer above
YI 需要稍后计算出来,因为这恰好是增量映像(备份)的值,我需要计算出最新的增量。
所以目前-> 计算文件中的行数,然后循环执行这么多行。
$lines = Get-Content -Path PostBackupCheck-Textfile.txt | Measure-Object -Line
for ($i=0; $i -le $lines.Lines; $i++)
在这个循环中,我需要做一个 Get-Content 来读取我当前正在查看的行,即第 0 行、第 1 行、第 2 行,因为我在开头编写的格式中会有多行并将行拆分为一个数组,其中文件的每个部分,如上面的命名约定所示,位于 a[0]、a[1]、a[2] 中。ETC
这样做的原因是,我需要对包含这些文件的文件夹进行排序,按日期查找最新文件,然后_iXXX.spi
将其放入数组值中a[X]
,这样我就有了一个完整的文件名来挂载。此值将替换iYYY.spi
这有点复杂,因为在按日期对所有内容进行排序之前,我还必须确保在使用 -Include 执行 Get-ChildItem 时,我只包括与从文本文件中输入的参数匹配的文件名:
所以,
SERVER01_C_VOL-b001-iYYY.spi and not anything else.
i.e. not SERVER01_D_VOL-b001-iYYY.spi
然后从 Get-ChildItem -Include 上的排序中获取 iYYY 值,并将其放入适当的数组项中。
我真的不知道从哪里开始,所以任何想法都值得赞赏!
希望我已经解释得足够详细了。我还将代码放在 Pastebin 上:http: //pastebin.com/vtFifTW6