
目標log文件不是主文件夾下而是在主文件夾的最新按創建時間子文件夾下面請大神幫忙修改此批處理,目標.log文件不是主文件夾下,而是在主文件夾的最新(按創建時間)子文件夾下面,處理完.log文件之后,.log文件名不能修改還是放在原有子文件夾下面;十分感謝!??!可以給予合理報酬首先說一下我的整個需求(目前批處理已經能夠完成對.log檔的修改):如插圖所示:其中紅色文字內容是需要求助的;但現在路徑不對,.log文件不是在Repair1和Repair2路徑下生成的,而是在它們的子文件夾下面生成的因為子文件夾會改變我現在實現起來比較麻煩,隔一段時間要去修改批處理的路徑我就是想能不能讓這個批處理更智能一點,自動識別,最新(按創建時間)的子文件夾文件夾只能去識別Repair1或者Repair2下面最新生成的那個子文件夾最新生成的子文件夾才是目前工作的文件夾,其他子文件夾是已經工作過的不能去識別Repair下面所有子文件夾,因為Repair下面有多級子文件夾(如果你能實現只查找第一級子文件夾也可以,第一級子文件夾的數量相對少一點,但是第二級子文件夾的數量非常之多,而且一直在增加的狀態)下面是相關需要修改的原始文檔:
- @echo off
- setlocal enabledelayedexpansion
- set f=
- timeout /?>nul 2>&1&&set v=1||set v=2
- :begin
- set n=
- set fd=
- set flag=
- for /f delims= %%a in ('dir /b D:Repair1*.log 2^>nul') do set t=%%a&set fd=D:Repair1
- for /f delims= %%a in ('dir /b D:Repair2*.log 2^>nul') do set t=%%a&set fd=D:Repair2
- if %t% neq %f% (
- set f=%t%
- for /f delims= %%b in ('type %fd%!f!') do (
- set line=%%b
- if !line:-AdditionalPartInfo-=! neq %%b set n=1
- if defined n (
- for /f tokens=1-8 delims=, %%c in (%%b) do (
- if %%i neq (
- if %%i neq BarcodeFailure (
- set #_#%%e=%%i
- ) else set flag=1
- )
- )
- )
- )
- if defined flag (
- set n=
- (for /f tokens=1* delims=: %%b in ('findstr /n .* %fd%!f!') do (
- set line=#%%c
- if !line:-AdditionalPartInfo-=! neq #%%c set n=1
- if defined n (
- if !line:BarcodeFailure=! neq #%%c (
- set line=!line:~1!
- for /f tokens=1-8 delims=, %%i in (%%c) do (
- for /f delims= %%i in (!#_#%%k!) do echo;!line:BarcodeFailure=%%i!
- )
- ) else echo;%%c
- ) else echo;%%c
- ))>%tmp%$tmp.txt
- copy %tmp%$tmp.txt %fd%!f! /y
- ) else echo;%fd%!f! no BarcodeFailure
- )
- for /f tokens=1 delims== %%a in ('set #_# 2^>nul') do set %%a=
- if %v% equ 2 (>nul ping /n 4 0) else (>nul timeout /t 4 /nobreak)
- goto begin
nclick="copycode($('code0'));">復制代碼
最后附加功能,幫忙看一下能不能實現:最好是如果這一組有正常的就用正常的條碼填充這一組的Barcodefailure;如果這一組全部都是NG的,也就是全部是Barcodefailure就用上一組正常的條碼內容進行填充