我需要创建一个脚本批处理、PowerShell 或 VB 来将星期几添加到文件名中。
例如,有 4 个文件,并且都需要在星期一将 MON 附加到前面,在星期二附加 TUE,在星期三附加 WED,等等。
有人可以帮忙吗?
我需要创建一个脚本批处理、PowerShell 或 VB 来将星期几添加到文件名中。
例如,有 4 个文件,并且都需要在星期一将 MON 附加到前面,在星期二附加 TUE,在星期三附加 WED,等等。
有人可以帮忙吗?
$dow = (Get-Date -f ddd).ToUpper()
$fileName = "${dow}_your_file_name.txt "
THU_your_file_name.txt
好吧,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 并刮掉第五个令牌。
(用于转换为大写的想法来源)find
使用 VBScript Docs 或 Google 来了解关于Weekday()
和WeekdayName()
函数的详细信息:
Today = Date()
DayNum = Weekday(Today)
DayName = WeekdayName(DayNum, True)
WScript.Echo UCase(DayName) & "_" & "somefile.txt"
THU_somefile.txt
PS: 从这里开始:函数(VBScript)
如果您选择 VBScript,请注意与WeekDayName
区域语言设置相关的功能。例如,Friday
is Петък
(保加利亚语),所以在我的系统WeekDayName
中设置为 abbreviateTrue
将返回Пт
, not Fri
。
WScript.Echo WeekDayAbbrENG()
Function WeekDayAbbrENG()
Dim WDs
WDs = Split("SUN MON TUE WED THU FRI SAT")
WeekDayAbbrENG = WDs(Weekday(Now) - 1)
End Function
[编辑] 实际上,同样的问题出现Get-Date
在 PowerShell 中。