2017-02-14 4 views
0

私はこのバッチスクリプトを書いていますが、ファイル拡張子のすべてのファイルが存在するかどうかを調べると、そのファイルが存在する場合でもelseが実行されます。事前に助けてくれてありがとう!同じ拡張バッチスクリプトを使用して複数のファイルを検索します

@echo off 
if not exist C:\Users\%USERNAME%\Desktop\workBackup (
    ::creates new folder 'workBackup' 
    mkdir C:\Users\%USERNAME%\Desktop\workBackup 
) 

set TIMESTAMP=%DATE:~4,2%%DATE:~7,2%%DATE:~10,4% 

if not exist C:\Users\%USERNAME%\Desktop\workBackup\%TIMESTAMP% (
    ::creates new folder to put work into 
    mkdir C:\Users\%USERNAME%\Desktop\workBackup\%TIMESTAMP%  
) 

if not exist C:\Users\%USERNAME%\Desktop\workBackup\%TIMESTAMP%\logs (
    ::creates logs folder 
    mkdir C:\Users\%USERNAME%\Desktop\workBackup\%TIMESTAMP%\logs 
) 

if exist C:\User\%USERNAME%\Documents\workspace\out\log\*.xlsx (
    ::moves all xlsx files to workBackup folder 
    move "C:\User\%USERNAME%\Documents\workspace\out\log\"*.xlsx C:\Users\%USERNAME%\Desktop\workBackup\%TIMESTAMP%\ 
) else (
    ::exits if file no files are found 
    echo "Files not found" 
    exit /b 
) 
if exist C:\User\%USERNAME%\Documents\workspace\out\log\*.xlsx (
    ::moves all log files to workBackup folder 
    move "C:\Users\%USERNAME%\Documents\workspace\out\log\"*.log C:\Users\%USERNAME%\Desktop\workBackup\%TIMESTAMP%\logs 
) else (
    ::exits if file no files are found 
    echo "Files not found" 
    exit /b 
) 

答えて

0

は、最も深い、一方が他方 を暗示するフォルダ構造を作成する際に、日付形式は、ユーザーごとの設定、WMIC

  • から良くなる日です

    • 言及するいくつかのことがあります
    • 最終的なエラーメッセージをテスト、作成、抑制しません。
    • 、それ

    @echo off 
    for /f %%A in ('wmic os get LocalDateTime^|findstr ^^[0-9]') do Set _DT=%%A 
    Set yy=%_DT:~0,4%&Set MM=%_DT:~4,2%&Set dd=%_DT:~6,2% 
    
    Set "WBu=C:\Users\%USERNAME%\Desktop\workBackup" 
    Set "WBuDT=%WBu%\%dd%%MM%%yy%" 
    :: or reverse day and month %MM%%dd%%yy% 
    Set "WSpOL=C:\Users\%USERNAME%\Documents\workspace\out\log" 
    
    mkdir "%WBuDT%\logs" 2>NUL 
    
    ::moves all xlsx files to workBackup folder 
    move "%WSpOL%\*.xlsx" "%WBuDT%\" 2>NUL||(Echo "%WSpOL%\*.xlsx" not found&Exit /b) 
    
    ::moves all log files to workBackup folder 
    move "%WSpOL%\*.log" "%WBuDT%\logs\" 2>NUL||(Echo "%WSpOL%\*.log" not found&Exit /b) 
    
  • +0

    うわーのパス全体だけでなく、一部の周りに二重引用符を入れてすべてのフィードバックや助けのための感謝をVARS

  • を作成することにより、errorproneの冗長性を削減します。私は私のシステムを利用できるようになったら明日これを試してみよう! – Glen

  • +0

    ちょうどそれを試みた、それはまだファイルを見つけることができません。私はmoveコマンドをコメントアウトして両方のタイプを試しました。他のアイデア? – Glen

    +0

    タイプミスがありました(ユーザーにsがありません)その他ここでテストを行い、すべてのフォルダとバッチが期待通りに作成されました。 – LotPings

    関連する問題