我需要创建一个脚本批处理,PowerShell或VB来将星期几添加到文件名中。
例如,有4个文件,所有都需要在星期一,周二的TUE,星期三的WED等等将MON添加到前面。
有人可以帮忙吗?
答案 0 :(得分:7)
$dow = (Get-Date -f ddd).ToUpper()
$fileName = "${dow}_your_file_name.txt "
THU_your_file_name.txt
答案 1 :(得分:1)
使用VBScript文档或Google了解有关Weekday()
和WeekdayName()
函数的详细信息:
Today = Date()
DayNum = Weekday(Today)
DayName = WeekdayName(DayNum, True)
WScript.Echo UCase(DayName) & "_" & "somefile.txt"
THU_somefile.txt
<强> PS:强> 从这里开始:Functions (VBScript)
答案 2 :(得分:1)
嗯,有一个PowerShell和一个VBScript的答案。这是Windows cmd批处理的一个。
@echo off
setlocal
for /f "tokens=5" %%I in ('find "" "%date:~0,3%" 2^>^&1') do set day=%%I
ren "oldfile.txt" "%day%_oldfile.txt"
<强>解释强>
:: DIRECTIVE RESULT
:: --------------------------------------------------------
:: %date% Thu 02/07/2013
:: %date:~0,3% Thu
:: find "" "Thu" error stating "File not found - THU"
:: --------------------------------------------------------
然后剩下的就是将错误从stderr重定向到stdout并刮掉第五个令牌。
(source of idea使用find
转换为大写)
答案 3 :(得分:0)
如果您选择VBScript,请注意与区域语言设置相关的WeekDayName
功能。例如,Friday
为Петък
(保加利亚语),因此在我的系统WeekDayName
中,缩写设置为True
将返回Пт
,而不是Fri
}。
WScript.Echo WeekDayAbbrENG()
Function WeekDayAbbrENG()
Dim WDs
WDs = Split("SUN MON TUE WED THU FRI SAT")
WeekDayAbbrENG = WDs(Weekday(Now) - 1)
End Function
[编辑]实际上,PowerShell中Get-Date
会出现同样的问题。