コマンドプロンプト powershell 各種情報取得例

コンピュータのOS Caption情報取得

@echo off

rem (Get-WmiObject Win32_OperatingSystem).Caption
FOR /F "usebackq delims=" %%A IN (`powershell "(Get-WmiObject Win32_OperatingSystem).Caption"`) DO set result=%%A
echo %result%

 

powershell

今日の日付取得

for /F %%i in ('powershell (Get-Date^).ToString('yyyyMMdd_HHmm_ss_fff'^)') do (
set dayago=%%i )

 

X日前の情報取得

rem 2日前
for /F %%i in ('powershell (Get-Date^).AddDays(-2^).ToString('yyyyMMdd'^)') do (
set dayago=%%i )
set dayago=%dayago: =%

Xnか月前の年月を取得する

for /F %%i in ('powershell (Get-Date^).AddMonths(-1^).ToString('yyyyMd'^)') do (
set SENGETSU=%%i
)
set SENGETSU=%SENGETSU: =%
echo nヶ月前は%SENGETSU%

Xか月前の月末を取得する

rem 先月末の月末日
for /F %%i in ('powershell (Get-Date -Day 1^).AddDays(-1^).ToString('yyyyMMdd'^)') do (
set GETSUMATSU=%%i
)

rem Addmonths を変更 -2 であれば -3ヶ月前の日付となる
for /F %%i in ('powershell (Get-Date -Day 1^).AddMonths(-2^).AddDays(-1^).ToString('yyyyMMdd'^)') do (
set GETSUMATSU=%%i
)

X日前の曜日を取得する( VBS風)

rem test 曜日取得
for /F %%i in ('powershell (Get-Date (Get-Date^).AddDays(-0^).ToString('yyyy/MM/dd'^)^).DayOfWeek^') do (
set Week1=%%i
)
set whatday=%Week1:~0,3%

for /f "usebackq delims=" %%A in (`powershell.exe -Command "(Get-Date (Get-Date).AddDays(-0) ).DayOfWeek -as [int]"`) do set DAYOFWEEK1=%%A
echo %DAYOFWEEK1%
set DAYWEEK2=0%DAYOFWEEK1%_%WHATDAY%

if %DAYWEEK2%==06_Sat set WDAY=07_SAT
if %DAYWEEK2%==05_Fri set WDAY=06_FRI
if %DAYWEEK2%==04_Thu set WDAY=05_THU
if %DAYWEEK2%==03_Wed set WDAY=04_WED
if %DAYWEEK2%==02_Tue set WDAY=03_TUE
if %DAYWEEK2%==01_Mon set WDAY=02_MON
if %DAYWEEK2%==07_Sun set WDAY=01_SUN

echo %wday%

日付から曜日取得

rem 
for /F %%i in ('powershell (Get-Date (Get-Date^).AddDays(-0^).ToString('yyyy/MM/dd'^)^).DayOfWeek^') do (
set Week1=%%i
)
set whatday=%Week1:~0,3%

曜日を番号で取得

rem test 曜日取得
for /F %%i in ('powershell (Get-Date (Get-Date^).AddDays(-0^).ToString('yyyy/MM/dd'^)^).DayOfWeek^') do (
set Week1=%%i
)
set whatday=%Week1:~0,3%


for /f "usebackq delims=" %%A in (`powershell.exe -Command "(Get-Date (Get-Date).AddDays(-0) ).DayOfWeek -as [int]"`) do set DAYOFWEEK1=%%A
echo %DAYOFWEEK1%
set DAYWEEK2=0%DAYOFWEEK1%_%WHATDAY%

ファイルのタイムスタンプ取得

for /F %%i in ('powershell (Get-ItemProperty
test.txt^).LastWriteTime.ToString('yyyyMMdd_HHmm_ss'^)') do (
set file01A=%%i
)

コメント