我有以下脚本,
more +1 "C:\Documents and Settings\Administrator\Desktop\Backup Data\import file\1.txt" > "C:\Documents and Settings\Administrator\Desktop\Backup Data\import file\2.txt"
"C:\Program Files\Microsoft Office\Office11\MSACCESS.EXE" "C:\Power Play\Daily\Daily.mdb" /x "Macro1"
DEL "C:\Documents and Settings\Administrator\Desktop\Backup Data\import file\*.*" /q
我正在做的第一行,因为我的文本文件顶部有一个空白行,然后是标题,然后是数据。
我的问题如下,有时文本文件只包含空行和标题。因此,在截断之后,我最终只得到了header。当我将数据导入访问时,这会导致我出现问题。
任何人都可以提供我的方式,如果文件为空,我可以停止导入访问
答案 0 :(得分:1)
如果文件只包含空行和标题,则可以将以下内容添加到脚本中以退出:
@echo off
setlocal enableextensions enabledelayedexpansion
set INPUT="C:\Documents and Settings\Administrator\Desktop\Backup Data\import file\1.txt"
set OUPUT="C:\Documents and Settings\Administrator\Desktop\Backup Data\import file\2.txt"
:: Get the number of lines in the file.
:: Skip the first line since it is blank.
set LINES=0
for /f "skip=1 delims=" %%I in (%INPUT%) do (
set /a LINES=LINES+1
if !LINES! EQU 2 goto :PROCESS
)
@echo %INPUT% is empty.
endlocal
exit /b 1
:PROCESS
:: Process the file
more +1 %INPUT% > %OUTPUT%
"C:\Program Files\Microsoft Office\Office11\MSACCESS.EXE" ^
"C:\Power Play\Daily\Daily.mdb" /x "Macro1"
DEL "C:\Documents and Settings\Administrator\Desktop\Backup Data\import file\*.*" /q
endlocal
exit /b 0
答案 1 :(得分:0)
我找到了一种检查文件大小的方法:
for %R in ("C:\...\import file\1.txt") do if %~zR lss 80 exit 1
这会检查文件大小(如果它小于80个字节)。我不知道如何检查Windows批处理文件中的行数。
我建议停止使用这个残缺的发明(批处理文件)并切换到理智的shell。