2017-08-13 31 views
0

日付をテキストファイルに保存するコマンドスクリプトを実行します。コマンドプロンプトでの日付の保存と復元

echo %date% > date.txt 

唯一の問題、このコマンドは、テキストファイルで一日保存されますので、

Sun 13/08/2017 

それがサービスを開始するように、私は戻って

date < date.txt 

を日付を変更するためのコマンドを持っている私が取得エラー 入力された日付は受け付けられません。

それは私が誰かがそれが日取り除く私

for /F "tokens=2" %i in ('date /t') do echo %i > date.txt 

を、このコマンドを与えてきた、それはそれ自体で実行さ

date < date.txt 

を動作するように、このコマンドで

13/08/2017 

を表示する必要があります。 が実行された後に終了するスクリプトで実行するには、 スクリプトで実行されていないようです。

私は他のコンピュータを持って、私はこのスクリプトを使用すると、ウィンドウが更新

後にそれは問題を修正します。他のコンピュータ上のWindowsアップデートによってその日が削除されます。

このコンピュータは、すべてのWindowsの更新プログラムを持っていましたが、あなたは地域依存の日付の最後の10個の文字を簡単な解決策は、文字列置換を使用している

+0

コードの書式設定を使用します。これはあなたのコードをフォーマットして読めるようにします; –

+0

私は、WindowsのスクリプトホストやPowerShellのように、これには何か別のものを使用します。 – Marged

+0

Windowsのx64で動作するpowershellは一度も使用していません –

答えて

0

CMDに<date>を入力し、テキストファイルに書き込むときに日はまだ 表示しますechoでテキストを書く上

>date.txt echo %DATE:~-10% 

リダイレクト演算子>の前にスペース文字を避ける:内蔵され、このコードを使用して、環境変数DATEの文字列このスペース文字としてのファイルは、末尾スペースとしてファイルにも書き込まれます。

時には理由代わりにファイルを9にハンドル1をリダイレクト手段9>1>でコマンドラインを実行することになる9の範囲1の数値で終了する可能性が可変テキストのecho %VariableText%>OutputFile.txtを使用することが危険です番号19に書き込むことができます。そのような場合は、上記のコマンドラインでコマンドechoが実行される前に、コマンドラインの始めにファイルへのリダイレクトを指定することをお勧めします。

このコードを使用して、DD/MM/YYYYという形式の日付をANSIでエンコードされたテキストファイルdate.txtに保存することもできます。

@echo off 
for /F "tokens=2 delims==." %%I in ('%SystemRoot%\System32\wbem\wmic.exe OS GET LocalDateTime /Value') do set "LocalDateTime=%%I" 
>date.txt echo %LocalDateTime:~6,2%/%LocalDateTime:~4,2%/%LocalDateTime:~0,4% 

このコードは、WMIC日付と時刻文字列出力が常に同じフォーマットを持っているので、領域が現在のユーザのために設定されている独立しているという利点を有します。コマンドプロンプトウィンドウwmic OS GET LocalDateTime /Valueを実行してUTF-16エンコードされた出力WMICを処理してください。の行が行します。欠点は、このコードが遅いことです。

DATEコマンドを使用して日付を戻すには、地域依存の日付形式を知っていなければなりません。

使用されているコマンドとその動作方法を理解するには、コマンドプロンプトウィンドウを開き、次のコマンドを実行して、コマンドごとに表示されているすべてのヘルプページをすべてよく読んでください。

  • echo /?
  • for /?
  • set /?
  • wmic /?
  • wmic os /?
  • wmic os get /?
  • wmic os get localdatetime /?

Using Command Redirection OperatorsについてのMicrosoftの記事も参照してください。

関連する問題