web-dev-qa-db-ja.com

Windowsバッチ、異なる地域設定、ディレクトリの名前変更YYYYmmDD_HHmmSS

2台のコンピューターの日付と時刻:

10/25/2017 3:36:05 a.m. __ on Windows 7  
2017-10-25 03:07:23 ______ on Windows XP  

地域の設定が変わると、
推奨されるものは何ですかユーティリティプログラムと
バッチファイルコマンドから
自動標準の日時形式への出力?
(ディレクトリの名前をR:\ 1に変更)

ren R:\1 R:\20171025_021459

R:\yyyyMMdd_HHmmss  
R:\20171025_021459  
3
Joseph

地域の設定を無視する標準の日時形式を取得するにはどうすればよいですか?

次のバッチファイルを使用します(これは、wmicから出力された現地時間を解析する正しい方法です)。

@echo off
setlocal
rem use findstr to strip blank lines from wmic output
for /f "usebackq skip=1 tokens=1-6" %%g in (`wmic Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year ^| findstr /r /v "^$"`) do (
  set _day=00%%g
  set _hours=00%%h
  set _minutes=00%%i
  set _month=00%%j
  set _seconds=00%%k
  set _year=%%l
  )
rem pad with leading zeros
set _month=%_month:~-2%
set _day=%_day:~-2%
set _hh=%_hours:~-2%
set _mm=%_minutes:~-2%
set _ss=%_seconds:~-2%
rem use YYYYmmDD_HHmmSS format for the timestamp
set _stamp=%_year%%_month%%_day%_%_hh%%_mm%%_ss%
ren R:\1 %_stamp%
endlocal

参考文献

  • Windows CMDコマンドラインのA-Zインデックス -Windowsコマンドラインに関連するすべてのものの優れたリファレンス。
  • / fの場合 -別のコマンドの結果に対してコマンドをループします。
  • getdate -OSロケール、言語、またはユーザーが選択した日付形式(コントロールパネル/地域)に関係なく、日付と時刻を表示します。
  • 変数 -変数(部分文字列)の一部を抽出します。
  • wmic --Windows ManagementInstrumentationコマンド。
3
DavidPostill

これは、特にやりたいことを行うためのより短い方法です。私の業務では、サービスレベルアグリーメントが重要であり、どんなに些細なことでも、処理時間を短縮することが、私が通常使用するものです。

@echo off
REM Get date and time in YYYYMMDDhhmmss format
for /f "tokens=2 delims==." %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
rem put underscore in the middle of date and time stamp
ren R:\1 %dt:~0,8%_%dt:~8,6%
2
Squashman