1

私は CMD とバット スクリプトに関して初心者であることを認めているため、私の質問は既に回答されている可能性がありますが、用語に慣れていないため、見つけることができませんでした。

基本的に、現在CMDを実行してディレクトリコンテンツのtxtファイルを作成していますが、これは正常に機能しますが、このプロセスを改善したいと思い、バッチファイルを調べて、複数のディレクトリと日付でこれを実行しますが、混乱するだけですコマンド。

可能なコマンドを調べるための正しい方向を教えていただければ幸いです。これが私が基本的に達成しようとしているものです:

  • ディレクトリ 1 をスキャンし、日付 DDMMYYYY を変更してすべてのコンテンツ (ファイル名) を含むログ ファイルを作成し、ディレクトリ 1 (デスクトップに存在) の下に保存します。
  • ディレクトリ 2、3、4 などについて上記を繰り返します。

今、これにアプローチする方法とどこから始めればよいかわかりません。とてもシンプルに見えますが、私は仕事に取り掛かることができませんでした。

4

3 に答える 3

0

まず、現在の日時を解析するバッチ スクリプトはロケール固有になります。米国以外の Windows で使用する予定がない限り、問題ありません。私の解決策は、単純な VBS スクリプトを使用して現在のタイムスタンプを生成することでした

私のバッチファイルのコードは次のようになります

@echo off
call GetToday.bat
call %TEMP%\SetToday.bat
SET LOGFILE=Log.%TODAY%.log
echo %LOGFILE%
Use your log here

GetToday.bat:

@echo off
set TOOLS_HOME=%~dp0
cscript /NoLogo %TOOLS_HOME%\Today.vbs >%TEMP%\SetToday.bat
call %TEMP%\SetToday.bat

今日.vbs:

Dim d
d = Now
WScript.Echo "SET TODAY=" & Get2Digit(Year(d)) & Get2Digit(Month(d)) & Get2Digit(Day(d))

Function Get2Digit(value)
    if 10 > value Then
        Get2Digit = "0" & value
    Else
        Get2Digit = Right(value, 2)
    End If
End Function

ただし、Today.vbs は今日の日付を YYMMDD の形式で生成します。私の経験から、そのようなサフィックスははるかに便利です。ファイルを名前で並べ替えて、特定の日付を見つけることができます

于 2013-09-23T17:42:35.270 に答える
0

dd/mm/yyyyVista 以降を使用していて、日付形式が次のとおり であると仮定します。

for /d %%a in ("%userprofile%\Desktop\Directory*") do (
    for %%b in ("%%~fa\*") do (
        set "fname=%%~fb"
        for /f %%c in ("%%~tb") do set "fdate=%%c"
        setlocal enabledelayedexpansion
        echo !fname! !fdate:/=! >> "%%~fa\LOGFILE.TXT"
        endlocal
    )
)
于 2013-09-23T16:10:05.410 に答える