2017-09-08 49 views
0

特定のファイルの作成日を取得するバッチ構文を作成しようとすると、日付が90日以上経過した場合、次の部分に移動します。バッチスクリプトでなければ、終了します。ファイル作成日時のバッチファイル

これまでのところ私はやって日付を取得することができます:

を%Aの中で(C:\ test.txtの)行う設定myfiledate =%〜

+1

「検索機能」(https://stackoverflow.com/search?q=%5Bbatch-file%5D+get+yesterday+date)で「昨日の日付を取得」を使用してください。あなたは可能な解決策の多くを見つけるでしょう。ヒント:純粋なバッチで日付や時間を計算することは可能ですが、ひどいです。 – Stephan

+0

[FORFILES](https://ss64.com/nt/forfiles.html) – Squashman

+0

PowerShellはこれを簡単にします。 'Get-ChildItem | Get-Member'には 'LastWriteTime'プロパティがあります。 – lit

答えて

0

taのあなたはおそらく、PowerShellスクリプトを探していませんcmd.exeスクリプトで日付を計算するのは非常に面倒です。

私のディレクトリにファイルがあります。

C:>Get-ChildItem C:\Users\lit\t.txt 

    Directory: C:\Users\lit 

Mode    LastWriteTime   Length Name 
----    -------------   ------ ---- 
-a----  2017-08-14  15:16    0 t.txt 

ここにスクリプトがあります。

C:>Get-Content .\dt2.ps1 
[cmdletbinding()] 
Param() 

$ct = (Get-ChildItem C:\users\lit\t.txt).CreationTime 

if ($_.CreationTime -gt [DateTime]::Today.AddDays(-90)) { 
    Write-Verbose "file is less than 90 days since creation" 
    return 
} 

Write-Verbose "file is more than 90 days since creation" 

-Verboseスイッチで実行し、出力を生成する書き込み冗長文を取得すること。

C:>.\dt2.ps1 -Verbose 
VERBOSE: file is more than 90 days since creation 
関連する問題