【发布时间】:2018-06-12 22:48:32
【问题描述】:
我需要一些帮助!
我使用 7 zip 使用批处理文件提取一些压缩档案。
基本上会发生什么,
一些客户将一些压缩的每日档案传输到 FTP 文件夹,
然后,我们运行一个批处理文件,将档案提取到另一个文件夹中,然后 Qlik 会在该文件夹中处理文件。
问题是,其中一位客户更改了文件名的格式(他们说不能改回来!)。
以前文件名的格式如下..
XXXXXXX_01012018.txt
现在名字只是
XXXXXXX.txt
所以现在文件名中缺少日期。
不幸的是,现在这会导致问题,因为通常客户会同时传输多个档案(例如,他们将传输 7 天的价值而不是每天进行),
这意味着当文件被提取到 Qlik 目录结构中时,
第二个存档将覆盖第一个,第三个将覆盖第二个等,因为文件名将相同。
我需要一种将日期附加到存档文件的方法。日期已经在存档文件夹名称中,因此我需要从存档名称中获取日期并将其附加到存档中的文件名中。
请问有谁知道我该怎么做? 下面 id 我当前的批处理文件
for /R C:\FTP_FOLDER\Cust1\ %%f in (*.txt) do move "%%f"
C:\FTP_FOLDER\Cust1\
@echo off
rem | Extract and Archive Telco Operators Files
rem | ==========================================
rem | rem | Version Control
rem | ==========================================
rem | August17 | Initial Version
rem | Set all of the following environment variables
rem | ==========================================
rem **Set 7-Zip Installation Var**
set zip="C:\7-Zip\"
rem **Set Cust1 Environment Vars**
set atFTP=C:\FTP_FOLDER\Cust1\
set atArc=C:\QlikView\SourceData\Cust1\Archive\
set atData=C:\QlikView\SourceData\Cust1\
rem | ==========================================
"%zip%"7z.exe e "%atFTP%BSC*.zip" -aoa -o"%atData%" -r
Move /Y C:\FTP_FOLDER\Cust1\*.zip C:\QlikView\SourceData\Cust1\Archive\
move /Y "%atFTP%*.*" "%atData%"
exit
任何帮助将不胜感激。
【问题讨论】:
-
这个问题不是 StackOverflow 的主题,在这个网站上你发布了应该执行任务但没有执行任务的脚本;然后,我们将尝试帮助您使其正常工作。目前,您的问题是一个脚本请求,现在我相信您作为一名员工了解您不是免费为公司工作的,那么我们为什么要这样做?我们很乐意为您提供帮助,但这并不是一个全取不放弃的场景,请尝试脚本,如果无法按预期工作,请返回此处并返回 edit。
-
我认为您的问题是使用 7z 和通配符
"%zip%"7z.exe e "%atFTP%BSC*.zip" -aoa -o"%atData%" -r解压缩,您应该使用 for 循环一个接一个地解压缩,并检查是否有要附加日期戳的文件。只要您的问题缺乏这方面的详细信息,它很可能会被搁置。另请阅读minimal reproducible example 是什么。
标签: batch-file 7zip