/ / powershell、バッチファイル、windows-7、powershell-v2.0、datetime-formatを使用してバッチファイルの日付と時刻を書式設定する

Powershell、バッチファイル、windows-7、powershell-v2.0、datetime-formatを使用したバッチファイルの日付と時刻の書式設定

現在の日付と時刻を特定の形式で使用してファイル名を付けたいとします。

これを行うには、次のコードを設定します %datetime% 私が望む形式に。
例:2017-06-19 05_00_00

for /f %%a in ("powershell -Command "Get-Date -format yyyy-MM-dd HH_mm_ss"") do set datetime=%%a

これは本当にうまくいきません。私は99%が日時の間のスペースによると確信しています。

エラーとは何ですか?どのように修正できますか?

(WMICが利用できるかどうかはわかりませんので、Powershellを呼び出すのがおそらく最良のソリューションでしょう。

回答:

回答№1は2

これらのいずれかを試すことができます

for /f "delims=" %%a in ("
powershell -Command "Get-Date -format "yyyy-MM-dd HH_mm_ss""
") do set "datetime=%%a"

for /f "tokens=*" %%a in ("
powershell -Command "Get-Date -format "yyyy-MM-dd HH_mm_ss""
") do set "datetime=%%a"

for /f "tokens=1,2" %%a in ("
powershell -Command "Get-Date -format "yyyy-MM-dd HH_mm_ss""
") do set "datetime=%%a %%b"

元のコードからの変更

  1. 書式文字列が引用されています
  2. for /f コマンドは、処理中の行をトークン化します。スペースとタブをデリミタとして使用し、デフォルトでは行の最初のトークン(あなたの場合は日付)のみを取得します。出力にスペース区切りのトークンが2つあるため、トークン化(最初のサンプル、区切り文字リストのクリア)、行のすべてのトークンを要求する(2番目のサンプル)、または必要なトークンのみを要求する(3番目のサンプル)