我正在寻找存储变量$i.Name
或$i.LastWriteTime
的最佳方法,以便我可以继续将文件夹名称加载到我的.exe中而无需重复。
可能类似于:
$LastFolderProcessed = "Stored LastWriteTime from last processing"
if ($i.LastWriteTime -gt $LastFolderProcessed } | `
Continue....
我编写了一个从任务计划程序启动的脚本,以完成以下步骤:
1。)检查原始目录并将新项目(文件夹)复制到处理中 。目录
2。)循环处理目录并找到每个项目
3.)将每个项目分配给变量$ i.Name
4.。)定义CMD和Args。运行(安培)。
脚本
Set-ExecutionPolicy unrestricted -Force
cpi C:\Apps\AutoTest\Analysis\2016\* C:\Apps\AutoTest\Loading -Recurse
foreach($i in Get-ChildItem C:\localApps\AutomationTest\Loading)
{
if ($i.PSisContainer) {$i.Name}
$CMD = 'C:\Program Files\Analysis\LoadProgram.exe'
$arg1 = "-database:Data Source=MSSQLSERVER"
$arg2 = "-directory:C:\Apps\AutomationTesting\Loading\$i"
$arg3 = "-config:C:\Program Files\Analysis\Configs\loadconfig.xml"
& $CMD $arg1 $arg2 $arg3
}
$i.LastWriteTime
该脚本运行我的.exe [与Args]并将加载$i.name
变量及其找到的每个文件夹名称。如果目录中有5个文件夹名称,则每次迭代将运行.exe 5次。
脚本将每天运行。
我正在寻找一种存储引用变量的好方法,以便在2天内,如果脚本启动并找到3个新的文件夹名称,它将只处理新的文件夹。
这是我认为我最好的选择可能是$i.LastWriteTime
答案 0 :(得分:3)
到目前为止,最简单的方法是使用Export-Clixml
和Import-Clixml
。这些cmdlet将对象序列化为XML文件,反之亦然。
例如,如果您想存储整个文件列表:
$list = Get-ChildItem #...
$list | Export-Clixml -Path C:\my\path\MyFiles.xml
重装它,它是一样的:
$oldList = Import-Clixml -Path C:\my\path\MyFiles.xml