以下是我自己完成的bat,但是有几个问题还要请教
1. dir/s/a/b c:native2ascii.exe>%~dp0temp.sbl如果没找到文件的信息如何不显示
2.if exist "%~f1\" goto error
if not exist "%~f1" goto error
这两行,对于文件和目录都存在时,好象就不能准确的判断文件是否存在,如何判断文件的存在呢?
3 dir找不到文件时,有没有什么错误代码?来获知找到还是没找到?
再就是希望大家把我的代码优化一下,我太菜了,有很多不够最简化
@echo off
rem 判断是否有第二个参数,并是不是设置path路径的?
if exist "%~dp0temp.sbl" del/f "%~dp0temp.sbl"
if "%~dp2"=="" goto pass
if exist "%~dp2native2ascii.exe" (
set path=%path%;%~dp2
echo 添加目录到path中成功
)
rem 判断是文件还是上目录,因为要对文件操作,判断%1有效性
:pass
if exist "%~f1\" goto error
if not exist "%~f1" goto error
%~d1
cd %~p1
rem 初始化参数x,然后去path设置的目录找有没有需要的文件
set x="sbl"
for %%i in (native2ascii.exe) do if exist %%~$PATH:i set x=%%~$PATH:i
if not %x% == "sbl" goto pass2
echo path路径中不包括native2ascii.exe文件的路径,本程序现在自动搜索驱动器C:、D:、E:,
echo 寻找native2ascii所在目录,此过程可能需要一段时间,请稍候....
echo.
echo.
echo 搜索中......
echo.
echo.
dir/s/a/b c:native2ascii.exe>%~dp0temp.sbl
dir/s/a/b d:native2ascii.exe>>%~dp0temp.sbl
dir/s/a/b e:native2ascii.exe>>%~dp0temp.sbl
rem 找不到退出,否则重新执行bat,并根据参数2设置目录
for /f %%i in (%~dp1temp.sbl) do set aa=%%i
if "%aa%"=="" (
echo 你的电脑不存在native2ascii.exe文件,无法完成转换。
goto end
)
for /f %%i in (%~dp1temp.sbl) do %0 %1 %%~dpi
rem 执行真正的操作
:pass2
native2ascii -encoding gb2312 "%~f1" ApplicationResources_zh_CN.properties
echo 转换成功!!!
goto end
rem 参数%1无效时,重输,然后重启bat
:error
echo.
echo.
echo 你没有输入需要转换的文件名,或该文件名不存在!
echo.
set /p file=请输入要转换的文件名(退出请输exit):
%0 %file%
rem 结束
:end
pause
@echo on
[ Last edited by wentimao on 2006-6-4 at 14:01 ]
xp,cmd