用于向文件名添加日期而非日期的脚本

时间:2013-02-07 12:18:50

标签: powershell batch-file vbscript dayofweek

我需要创建一个脚本批处理,PowerShell或VB来将星期几添加到文件名中。

例如,有4个文件,所有都需要在星期一,周二的TUE,星期三的WED等等将MON添加到前面。

有人可以帮忙吗?

4 个答案:

答案 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会出现同样的问题。