需要使用Windows批处理脚本根据到达时间处理文件

时间:2016-10-26 14:18:35

标签: batch-file

我每天收到5到6个文件。文件名采用XXXXX_DDMM_YYYYMMDDHHMISS.csv

格式

示例:

  • 2016年10月17日下午03:12:32生成的文件名为XXXXX_17OCT_20161017151232.csv

  • 2016年10月16日下午03:04:23生成的文件名为XXXXX_16OCT_20161016150423.csv

  • 2016年10月18日02:34:56生成的文件名为XXXXX_18OCT_20161018143456.csv

我需要将所有文件移动到名为TEST1的文件夹中,然后我需要找到第一个具有最旧时间戳的文件,对其进行处理,然后从该文件夹中删除该文件。

接下来需要选择第二个最旧的时间戳,并为所有文件重复此过程。

你能帮我吗?

2 个答案:

答案 0 :(得分:1)

经典方法是

adb pull /data/data/com.android.providers.setting C:/folder_name

adb push C:/folder_name /sdcard/folder_name for /f "delims=" %%a in ('dir /b /a-d /od "test1\*.csv"') do echo %%a 日期订单中的掩码echo匹配的文件名。{/ p>

这应该做你想要的(好吧,按顺序选择文件 - 处理是你的事......)但是如果你真的想根据test1\*.csv未知的名称来处理文件(但是恒定长度(5))然后

/od

应该有效 - 在第11列开始对原始文件名列表进行排序。

答案 1 :(得分:0)

当且仅当XXXXX的长度不变时,

Magoo's 2nd solution效果很好。但如果它可以变化,那么SORT对你没有任何好处。

我已编写JSORT.BAT来处理超出本机SORT命令功能的复杂排序方案。它是纯脚本(混合批处理/ JScript),可以在任何Windows机器上从XP开始本地运行 - 不需要第三方exe文件。

从命令提示符处使用jsort /?以获取帮助。

在此解决方案中,我根据文件名中最后一个_之后出现的文本进行排序。因此,即使XXXXX中包含_,此解决方案也能正常运行。

pushd "\test1"
for /f "eol=: delims=" %%F in (
  'dir /b /a-d "test1\*.csv"^|jsort /d _ /t -1'
) do (
  REM process the %%F file
  del "%%F"
)
popd