1

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

例如,有 4 个文件,并且都需要在星期一将 MON 附加到前面,在星期二附加 TUE,在星期三附加 WED,等等。

有人可以帮忙吗?

4

4 回答 4

7
$dow = (Get-Date -f ddd).ToUpper()
$fileName = "${dow}_your_file_name.txt "

THU_your_file_name.txt
于 2013-02-07T12:42:00.187 回答
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 并刮掉第五个令牌。

(用于转换为大写的想法来源)find

于 2013-02-07T14:02:49.410 回答
1

使用 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)

于 2013-02-07T12:29:22.443 回答
0

如果您选择 VBScript,请注意与WeekDayName区域语言设置相关的功能。例如,Fridayis Петък(保加利亚语),所以在我的系统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 中。

于 2013-02-08T01:53:22.030 回答