Encoding 按月份分隔创建文件夹的批处理脚本

Encoding 按月份分隔创建文件夹的批处理脚本,encoding,batch-file,directory,Encoding,Batch File,Directory,我想知道是否有任何方法,它可以关闭.04并为该月创建一个文件夹,这样它会自动将其放入需要进入的文件夹中,这样就可以方便地按月搜索 **如果我们不能使用格式化文件的格式来按文件创建对其进行排序,是否有可能 似乎您有一个文件夹,其中包含文件名中嵌入的不同月份数值的文件。我曾考虑从每个文件中提取该值,但使用蛮力通配符和12个不同的XCOPY命令会更简单: Username-R705-2011.05.04-1601-Disconnected.7z 我可能误解了这个问题,但如果你能对文件名做出一些假设,

我想知道是否有任何方法,它可以关闭.04并为该月创建一个文件夹,这样它会自动将其放入需要进入的文件夹中,这样就可以方便地按月搜索


**如果我们不能使用格式化文件的格式来按文件创建对其进行排序,是否有可能

似乎您有一个文件夹,其中包含文件名中嵌入的不同月份数值的文件。我曾考虑从每个文件中提取该值,但使用蛮力通配符和12个不同的XCOPY命令会更简单:

Username-R705-2011.05.04-1601-Disconnected.7z

我可能误解了这个问题,但如果你能对文件名做出一些假设,这就行了。

似乎你有一个文件夹,里面装满了文件,文件名中嵌入了不同的月数值。我曾考虑从每个文件中提取该值,但使用蛮力通配符和12个不同的XCOPY命令会更简单:

Username-R705-2011.05.04-1601-Disconnected.7z
我可能误解了这个问题,但如果您可以对文件名进行一些假设,这将起作用。

删除以下所有内容(包括)行
REM XCOPY
,并将其替换为以下内容:

XCOPY "%SOURCE%\*-*-20??.??.01-*.7z" "%DEST%\01" /Y /V /I /R
XCOPY "%SOURCE%\*-*-20??.??.02-*.7z" "%DEST%\02" /Y /V /I /R
[...]
XCOPY "%SOURCE%\*-*-20??.??.12-*.7z" "%DEST%\12" /Y /V /I /R
此代码将遍历与
%SOURCE%\*.7z
匹配的每个文件,提取月份,然后将文件复制到
%DEST%\
。月份只是文件名中的两位数字。

删除(包括)行
REM XCOPY
下面的所有内容,并将其替换为以下内容:

XCOPY "%SOURCE%\*-*-20??.??.01-*.7z" "%DEST%\01" /Y /V /I /R
XCOPY "%SOURCE%\*-*-20??.??.02-*.7z" "%DEST%\02" /Y /V /I /R
[...]
XCOPY "%SOURCE%\*-*-20??.??.12-*.7z" "%DEST%\12" /Y /V /I /R


此代码将遍历与
%SOURCE%\*.7z
匹配的每个文件,提取月份,然后将文件复制到
%DEST%\
。月份只是文件名中的两位数。

为什么不使用powershell?它的功能更强大,你可以用它做更多的事情。:)是的,我不确定我没有写。我被赋予这个任务来修复它,让它做它需要做的事情。我更多的是一个php程序员,但我会看看powershell。我也在xp箱上日期格式是什么?是YYYY.MM.DD还是YYYY.DD.MM?此外,文件夹名称必须是“APRIL”还是“04”可以吗?“APRIL”将使批处理文件变长。04可以。april不必在那里你为什么不使用powershell?它的功能更强大,你可以用它做更多的事情。:)是的,我不确定我没有写。我被赋予这个任务来修复它,让它做它需要做的事情。我更多的是一个php程序员,但我会看看powershell。我也在xp箱上日期格式是什么?是YYYY.MM.DD还是YYYY.DD.MM?此外,文件夹名称必须是“APRIL”还是“04”可以吗?“APRIL”将使批处理文件变长。04可以。april不一定要在thereVik上,我想做的是为我们的公司录制远程会话,当我们在一天结束时保存文件时,它们会保存到Username-R705-2011.05.04-1601-Disconnected.7z,但当我们这样做时,它们会像脚本中显示的那样放在服务器上。所以我需要的是,当我们保存文件时,它需要放在那个月的文件夹中,比如01,02,03,这样就没有人需要进去乱动文件了。这样在月底我就可以登录并将它们刻录成dvd。我希望这会有所帮助。好吧,这让我们了解一些细节,好消息是文件名遵循特定的语法。关于的解决方案可能仍然有效,因为每个命令只会选择特定月份的文件。所以一月的文件将被移动到%DEST%\01等等。非常感谢,所以我只需将您的代码添加到XCOPY“%SOURCE%*.7z”“%DEST%”/Y/V/I/R rightVik我想做的是为我们的公司记录远程会话,当我们在一天结束时保存文件时,它们会保存到Username-R705-2011.05.04-1601-Disconnected.7z,但当我们这样做时,它们会像脚本中显示的那样放在服务器上。所以我需要的是,当我们保存文件时,它需要放在那个月的文件夹中,比如01,02,03,这样就没有人需要进去乱动文件了。这样在月底我就可以登录并将它们刻录成dvd。我希望这会有所帮助。好吧,这让我们了解一些细节,好消息是文件名遵循特定的语法。关于的解决方案可能仍然有效,因为每个命令只会选择特定月份的文件。所以一月的文件将被移动到%DEST%\01等等。非常感谢,所以我只需将您的代码添加到XCOPY“%SOURCE%*.7z”“%DEST%”/Y/V/I/R rightindiv您的代码很棒,它确实可以工作,但我尝试了一些测试,如果我有一个像USERNAME-RCODE-2011.05.02-1314-Disconnected_2.7z这样的文件,不管出于什么原因,它创建了一个名为2的文件夹,其中有一个是03,因此它读取的是2011.05。“02或03”这就是日期。如何将其设置为“05”或“0x”中间数。但是你的代码是对的on@Alex:更改行
SET FILE\u MONTH=!当前文件日期:~-2
设置文件\u月=!当前文件日期:~5,2
提取中间的2位数字而不是最后的2位。indiv你的代码很棒,它确实有效,但我用它做了一些测试,如果我有一个像USERNAME-RCODE-2011.05.02-1314-Disconnected_2.7z这样的文件,不管出于什么原因,它生成了一个名为2的文件夹,其中有一个是03,因此它读取的是2011.05。“02或03”,这就是日期。如何将其设置为“05”或“0x”中间数。但是你的代码是对的on@Alex:更改行
SET FILE\u MONTH=!当前文件日期:~-2
设置文件\u月=!当前文件日期:~5,2
提取中间的两位数字,而不是最后两位。