我希望我的脚本从多个目录(位置)中获取某些文件。
例如:
设置1:
关注C:\test\ext
20160830.ext -- (CurrentDate - 1).ext
20160823.ext -- (CurrentDate - 7).ext
20160802.ext -- (CurrentDate - 28).ext
来自C:\test\nxt
20160830.nxt -- (CurrentDate - 1).nxt
设置2:
来自C:\test2\ext
的文件(这些文件在名称前面有一个前缀)
IND20160830.ext -- (INDCurrentDate - 1).ext
IND20160823.ext -- (INDCurrentDate - 7).ext
IND20160802.ext -- (INDCurrentDate - 28).ext
关注C:\test2\nxt
IND20160830.nxt -- (INDCurrentDate - 1).nxt
我使用以下命令将当前日期转换为yyyymmdd
格式
$Curr_date = (get-date).ToString('yyyyMMdd')
输出:20160831
但我不确定如何根据上面列出的条件从这些目录中获取文件,因为它必须是动态的,因为脚本将安排每周运行,并且应该按照上述条件获取文件。
答案 0 :(得分:1)
这是将您的一个文件从C:\test\ext
复制到桌面上名为Output
的文件的一个小示例。
请注意文件名周围的""
。这意味着您的文件名中的空格已被排除。
@ECHO OFF
xcopy "C:\test\ext\20160830.ext -- (CurrentDate - 1).ext" "%userprofile%\Desktop\Output\"
pause
您需要找到一种方法对所有文件执行此操作。如果您已经知道文件名,请不要使用日期。
答案 1 :(得分:0)
所以这就是我所做的:
我先以正确的格式提取日期 ' $ Date =(Get-date.AddDays(-1).TopString(' yyyyMMdd')'
然后创建另一个变量' $ V1 =" $ Date.ext"'
' if($ file.Name -eq $ V1) {
Copy-Item -Path $ file.FullName -Destination $ Path
}'
这很好用。