我正在研究一个人力资源数据项目,经过大量研究甚至更多的试验和错误,我调整了以下批处理文件(Windows 8.1环境),成功地从一个凌乱的文本文件中提取员工的开始日期 - 非常感谢用户dbenham的先前解决方案(我再次改编如下):
@echo off
setlocal disableDelayedExpansion
set "cnt=1"
>OUTPUT.txt (
for /f "skip=219 tokens=24,25,26 delims= " %%B in (MVANHOUTEN.txt) do (
echo(%%B %%C %%D
set /a "1/(cnt-=1)" 2>nul || goto :break
)
)
:break
其中 MVANHOUTEN.txt是输入文件
OUTPUT.txt文件仅包含: 1991年1月21日
我对批处理文件编程的复杂性了解有限,尽管dbenham代码的天才我已经确认100%用于上面的修改,但我不知道如何改变它而不破坏它。我需要这个批处理文件做三件事,但我似乎无法在不破坏上述代码的功能的情况下使其工作。具体来说,我需要:
任何人都可以帮我改进上面的批处理文件以完成上述操作而不破坏我成功改编自dbenham的原始磨砂膏吗?非常感谢提前!
答案 0 :(得分:0)
untested, as I don't have your datafiles:
@echo off
setlocal disableDelayedExpansion
for /f "delims=" %%a in ('dir /b *.txt') do (
call :process %%a
)
:process
set "cnt=1"
>"%~n1-Processed.txt" (
for /f "skip=219 tokens=24,25,26 delims= " %%B in (%~nx1) do (
echo( %~n1 %%B %%C %%D
set /a "1/(cnt-=1)" 2>nul || goto :eof
)
)