Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从filename.zip复制修改后的日期,并覆盖.ini文件中的现有日期_File_Powershell_Ini_File Writing - Fatal编程技术网

从filename.zip复制修改后的日期,并覆盖.ini文件中的现有日期

从filename.zip复制修改后的日期,并覆盖.ini文件中的现有日期,file,powershell,ini,file-writing,File,Powershell,Ini,File Writing,我有一份文件,修改日期为2018年9月4日 我想复制文件的修改日期并将其粘贴到.ini文件中 粘贴前: lastdbupdate=20180822 //YYYYMMDD 粘贴后: lastdbupdate=20180904 因此,本质上,它是从我的thumbdriveE:\my folder\dbupdates\mynewdb.zip上的文件读取/复制修改后的日期,然后打开.ini文件,找到字符串,并用修改后的日期结构替换它(在C:\programs\program name\dat

我有一份文件,修改日期为2018年9月4日

我想复制文件的修改日期并将其粘贴到
.ini
文件中

粘贴前:

lastdbupdate=20180822 //YYYYMMDD  
粘贴后:

lastdbupdate=20180904  
因此,本质上,它是从我的thumbdrive
E:\my folder\dbupdates\mynewdb.zip
上的文件读取/复制修改后的日期,然后打开
.ini
文件,找到字符串,并用修改后的日期结构替换它(在
C:\programs\program name\data\info.ini
中,从默认日期结构更改为
YYYYMMDD

我找到了几个关于日期和复制/粘贴文本的条目,但我还没能把它们结合起来

有没有可能有人提出了解决这两个问题的想法或文章建议?

  • 首先检查两个文件是否存在
  • 然后获取zip的属性,并将
    .LastWriteTime
    格式化为
    yyyyMMdd
  • 使用带有零长度断言的正则表达式替换
    lastdbupdate

##Q:\Test\2018\09\06\SO_52196744.ps1
$dbzip='E:\my folder\dbupdates\mynewdb.zip'
$inifile='C:\programs\program name\data\info.ini'
If((测试路径$dbzip)-和(测试路径$ini文件)){
$lastdbupdate=(获取项$dbzip).LastWriteTime.ToString('yyyyMMdd'))

(获取内容$iniFile)-替换“(?嗨,大卫!你能分享你迄今为止尝试过的代码吗?你好,欢迎来到StackOverflow。请花些时间阅读帮助页面,特别是名为和的部分。更重要的是,请阅读。你可能还想了解。我对更正表示歉意。我试图提供正确数量的信息,但我猜我没有戴上帽子。谢谢你,Gvee。我会在一段时间内下班回家,并尝试提供所需的信息。尝试以与clijsters回复一致的方式表达…我非常感谢!这看起来与我拼凑的东西大不相同,但这意味着我可能真的走错了方向!当我回到家里,我将运行此程序并发布结果!感谢您抽出时间!!
## Q:\Test\2018\09\06\SO_52196744.ps1

$dbzip   = 'E:\my folder\dbupdates\mynewdb.zip'
$inifile = 'C:\programs\program name\data\info.ini'

If ((Test-Path $dbzip) -and (Test-Path $iniFile)){
    $lastdbupdate=(Get-Item $dbzip).LastWriteTime.ToString('yyyyMMdd')
    (Get-Content $iniFile) -replace "(?<=^lastdbupdate=)\d{8}.*$",$lastdbupdate |
     Set-Content $iniFile
}