2017-06-14 7 views
0

ネストされたループ内からファイルの日付を変更するのに問題があります。BATCHスクリプト:ネストされたループ内のファイルの変更日を取得できません。

私はこのバッチスクリプトを実行しています:ここで

@ECHO OFF 
SETLOCAL EnableDelayedExpansion 
net use S: \\devfs\edcsrc\epoletto\campusanyware 

SET CLIENTS= DEMO 

FOR %%a in (%CLIENTS%) DO (

    S: 
    CD AD 
    FOR %%B in (*.cbl) DO (
     set file=%%B 
     echo !file! 
     for %%c in (!file!) do (echo %%~ta)) 

) 
pause 
net use S: /delete /Y 
ECHO. 

は私の出力です:

The command completed successfully. 

ad1.cbl 
ECHO is off. 
ad2.cbl 
ECHO is off. 
ad3.cbl 
ECHO is off. 
Press any key to continue . . . 

(私のファイル名のすべてが正しいですが、スクリプトがループする第三に入るとき(!file!)do(echo %%〜ta)))の%% cのために、私のファイルのために変更された日付/時刻を取得できません。コンセプトの証明として

、私は、コマンドラインからディレクトリ内からこの同じロジックを試してみました:

for %B in (*.cbl) DO (for %a in (%B) do echo %~ta) 

と(初期コマンドを含む)して、そのコマンドからの私の出力:

V:\>for %B in (*.cbl) DO (for %a in (%B) do echo %~ta) 

V:\>(for %a in (ad1.cbl) do echo %~ta) 

V:\>echo 05/02/2017 11:32 AM 
05/02/2017 11:32 AM 

V:\>(for %a in (ad2.cbl) do echo %~ta) 

V:\>echo 04/18/2017 02:04 PM 
04/18/2017 02:04 PM 

V:\>(for %a in (ad3.cbl) do echo %~ta) 

V:\>echo 04/27/2017 11:46 AM 
04/27/2017 11:46 AM 

私はなぜ私のスクリプトの中からこれらの日付を得ることができないのか混乱しています。私の最終的な目標は、各ファイルの日付をチェックし、その日付に依存する別のコマンドを実行することです。今私はエコーを使って日付を取得できることを確認しようとしています。どんな提案も感謝しています!

ありがとうございました!

答えて

0

代わりの

 for %%c in (!file!) do (echo %%~ta)) 

使用

 for %%c in (!file!) do (echo %%~tc)) 

あなたは%%cのではなく、%%aの修正時間をしたいので。

:)

関連する問題