呵呵,涉及日期计算vbs的是简便些,我写个bat的(适用20100101-20120228下面代码没去考虑闰年要考虑就又要多许多代码,估计用不上那长时间吧)
改了一下,建mm月dd日式的文件夹名
@echo off&color f1
setlocal enabledelayedexpansion
::下两行可改,尾部不要另加\
set sd1=D:\WENJIAN
set sd2=E:
echo 输入起始日期(yyyymmdd)格式如20100605
set/p da=请核对无误后回车:
set/a "dy=%da:~,4%-2010"
set/a "dd=%dy%365+%da:~6,1%10+%da:~7,1%"
set/a "mm=%da:~4,1%10+%da:~5,1%"
echo 正在处理,请等候
set n=1
for %%i in (31 28 31 30 31 30 31 31 30 31 30 31)do (
if !n! lss %mm% (set/a "dd=!dd!+%%i")
if !n! equ %mm% set bdm=%%i
set/a n+=1 )
set/a "dw=(%dd%+4)%%7"
if %dw%==0 set dw=7
set/a "dd=%da:~6,1%10+%da:~7,1%"
if %mm% lss 10 set "mm=0%mm%"
for /L %%a in (%dd%,1,%bdm%)do (
if %%a lss 10 (set "ymd=%mm%月0%%a日")else set "ymd=%mm%月%%a日"
if not exist "%sd2%\!ymd!" md "%sd2%\!ymd!"
copy /y "%sd1%\!dw!xml" "%sd2%\!ymd!\">nul
set/a dw+=1
if !dw!==8 set "dw=1")
set/a "dd=%da:~6,1%10+%da:~7,1%"
set/a dd-=1
if %dd%==0 goto :eof
if %mm% lss 10 set "mm=%mm:0=%"
set/a mm+=1
if %mm% equ 13 set "mm=1"
if %mm% lss 10 set mm=0%mm%
for /L %%b in (1,1,%dd%)do (
if %%b lss 10 (set "ymd=%mm%月0%%b日")else set "ymd=%mm%月%%b日"
if not exist "%sd2%\!ymd!" md "%sd2%\!ymd!"
copy /y "%sd1%\!dw!xml" "%sd2%\!ymd!\">nul
set/a dw+=1
if !dw!==8 set "dw=1")
echo 完成 *** 作!
pause
不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件放一起双击运行
<# :cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 将当前目录里多个jpg文件按照拍摄日期划分/归类到不同文件夹里
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "current=%cd%"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$b=[Convert]::FromBase64String("IC0tPiA=");
$c=[TextEncoding]::DefaultGetString($b);
Add-Type -AssemblyName 'Systemdrawing';
$current=$env:current;
$files=@(dir -literal $current|{(@("jpg","jpeg") -contains $_Extension) -and ($_ -is [SystemIOFileInfo])});
for($i=0;$i -lt $fileslength;$i++){
$t='';
$img=[SystemDrawingImage]::FromFile($files[$i]FullName);
foreach($it in $imgPropertyItems){
if($itId -eq 0x9003){
$t=[SystemTextEncoding]::ASCIIGetString($itValue) -replace '\x00$','';
break;
}
}
$imgDispose();
if($t -ne ''){
$newfolder=($ttrim()replace(':','-') -split '\s+')[0];
if(-not (test-path -literal $newfolder)){[void][IODirectory]::CreateDirectory($newfolder);}
$files[$i]Name+$c+$newfolder;
}
}
@echo off
if exist datetxt del datetxt
date /T >datetxt
for /f "tokens=2" %%W in (datetxt) do set Week=%%W
if "%Week%"=="星期一" goto noparms
goto end
:noparms
copy c:\testtxt d:\
exit
:end
del datetxt
del c:\testtxt
exit
注意大小写。里面是区分大小写的
1、很好实现,代码如下
(echo %date:~,10%)>datefiletxt生成的日期保存至datefiletxt
2、这个需要根据你的txt文档内容来决定怎么写代码,这里我按照txt文档中只有一行时间内容来写,代码如下:
set /p t=<timefiletxttime %t%
从timefiletxt中读取时间,但要注意时间格式必须是H:M:S或HH:MM:SS或HH:MM或H:M
路径可自行修改,可去除不需要的代码。
————————————————————————————————————
REM 关闭回显。
@echo off
REM 启动任务计划服务,以备需要。
net start "task scheduler"
REM 定时关机,本例定时为零时五分。
at 00:05 shutdown -s
REM 在00:05的时候启动C:\windows\NOTEPADEXE的程序
at 00:05 /interactive C:\windows\NOTEPADEXE
REM 在00:05的时候结束名为QQEXE的程序或进程
at 00:05 /taskkill /f /QQEXE
REM 以便查看处理结果
pause>nul
—————————————————————————————————————————————
获取日期
格式: %date%
结果: 2012-07-31
获取时间
格式: %time%
结果: 10:21:2168
这是获取的系统标准格式的日期和时间,但是有时候我们需要使用规定的格式,怎么办呢
格式: %date:~x,y%以及%time:~x,y%
说明: x是开始位置,y是取得字符数
比如说我要获取完整的日期和时间,
格式: %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
结果: 20120731111039
但是如果时间早于10点,那么只显示日期不显示时间,如:20120731,如何解决呢
格式: %date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%
结果: 20120731052539
这样就达到我们的目标,成功的得到日期和时间了。
以上就是关于求输入一个日期自动计算星期几执行拷贝命令(批处理、脚本都可以)全部的内容,包括:求输入一个日期自动计算星期几执行拷贝命令(批处理、脚本都可以)、bat或其他命令执行获取图片创建时间、如何在批处理文件中用IF语句来判断是星期几,是否执行任务,该怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)