Сценарий для добавления дня не даты в имя файла

Мне нужно создать пакет сценариев, PowerShell или VB, чтобы добавить день недели к имени файла.

Например, есть 4 файла, и все они должны иметь MON, прикрепленный к фронту по понедельникам, TUE по вторникам, WED по средам и т. Д.

Может ли кто-нибудь помочь с этим, пожалуйста?

1
nl ja de

4 ответы

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

THU_your_file_name.txt
7
добавлено
+1, если вы выбрали .ToUpper ()
добавлено автор Ekkehard.Horner, источник
Спасибо за улучшение.
добавлено автор Ekkehard.Horner, источник
Я только что добавил.
добавлено автор Shay Levy, источник

Ну, есть ответ для 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 для преобразования в верхний регистр)

1
добавлено
хотя он опирается на конкретный формат вывода даты, +1 для всех Blood, Sweat & Tears.
добавлено автор Ekkehard.Horner, источник

Используйте VBScript Docs или Google для получения подробной информации о функциях Weekday() и WeekdayName() , используемых в:

Today = Date()
DayNum = Weekday(Today)
DayName = WeekdayName(DayNum, True)
WScript.Echo UCase(DayName) & "_" &  "somefile.txt"

THU_somefile.txt

PS: Start here: Functions (VBScript)

1
добавлено
Предоставление ссылок на эту документацию было бы весьма полезным. Все верхние ссылки, которые Google предоставляет, относятся к W3Schools, что не всегда является лучшим источником информации.
добавлено автор alroc, источник

если вы выберете VBScript, будьте осторожны с функцией WeekDayName , поскольку она связана с настройками регионального языка. Например, Friday есть Петък (на болгарском языке), поэтому в моей системе WeekDayName с аббревиатурой, установленной в True , будет return Пт , 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

[EDIT] На самом деле такая же проблема возникает с помощью Get-Date в PowerShell.

0
добавлено
PowerShellRus - о Powershell (и не только) на русском
PowerShellRus - о Powershell (и не только) на русском
418 участник(ов)

О Powershell на русском

PowerShell Pro
PowerShell Pro
75 участник(ов)

Чат, посвящённый языку PowerShell Правила чата: нет оффтопу, спаму, оскорблениям. Будьте вежливы к коллегам. Приятного общения! Книги можно найти по тегу #books