这几天在论坛发帖询问,根据大家的帮助制作的批处理,主要用于sturts和jsf框架国际化的中文资源文件转换,大家看看,还有什么地方需要改正优化的?大家也不要在我以前发的帖子解答了
willsort 看看这句
if exist "%~f1\" goto error
if not exist "%~f1" goto error
本来这个是防止输入的参数是文件夹的情况,但这个就像我说的,如果在当前文件夹里有一个aa的文件,又有一个aa的文件夹,我的这两句是不是就失败了?
你提出了一个方法就是
for /f "usebackq" in ("%~f1") do ...)2>nul
这种方法是什么意思呢?不管它是文件还是目录都去操作,弄错了就屏蔽?是这个意思吗?不太明白,希望能解释一下
@echo off
cls
echo.
echo.
echo 中文资源转换批处理
echo =====================================================
echo.使用说明:
echo.
echo ⒈可以直接把要转换的源文件复制然后在批处理上点右键粘贴,
echo 生成的ApplicationResources_zh_CN.properties和messages_
echo zh_CN.properties文件会自动保存到和源文件同一目录下。
echo.
echo ⒉击批处理,然后输入源文件的完整路径,如源文件与批处理
echo 在同一目录下,则只要打源文件名就可以,同样完成转换。
echo .
echo ⒊在dos下,输入批处理名,后面加源文件的路径和文件名同样
echo 完成转换,同样,同一目录下时,可不打路径。
echo.
echo ⒋当native2ascii.exe没有在path中设置时,会自动到本地的
echo 所有驱动器查找并添加到path中,完全智能。
echo.
echo 建议把此批处理文件放到桌面上,然后使用第一种方法生成。
echo.=====================================================
:start
if "%~1"=="exit" goto end
if exist "%~dp0temp.sbl" del/f "%~dp0temp.sbl"
if exist "%~f1\" goto error
if not exist "%~f1" goto error
set x="sbl"
for %%i in (native2ascii.exe) do if exist %%~$PATH:i set x=%%~$PATH:i
if not %x% == "sbl" goto pass
echo.
echo path路径中不包括native2ascii.exe文件的路径,本程序现在自动在所有的驱动器
echo 寻找native2ascii所在目录,此过程可能需要一段时间,请稍候....
echo.
echo.
echo 搜索中......
echo.
echo.
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
cd %%i:\
dir /a /b /s %%i:native2ascii.exe>%~dp0temp.sbl 2>nul && goto add
)
echo.
echo 你的电脑不存在native2ascii.exe文件,无法完成转换。
echo.
goto end
:add
for /f "tokens=*" %%i in (%~dp0temp.sbl) do (
path=%path%;%%~dpi
echo 找到%%i
)
del %~dp0temp.sbl>nul 2>nul
:pass
%~d1
cd %~p1
native2ascii -encoding gb2312 "%~f1" ApplicationResources_zh_CN.properties
copy/y ApplicationResources_zh_CN.properties messages_zh_CN.properties
echo.
echo 转换成功!!!
echo.
goto end
:error
echo.
echo.
echo 你没有输入需要转换的文件名,或该文件名不存在!
echo.
set /p file=请输入要转换的文件名(退出请输exit):
call :start %file%
:end
@echo on
与本主题相关的讨论如下:
如何获得文件的完整路径?
http://www.cn-dos.net/forum/viewthread.php?tid=20996
如何判断参数是文件还是目录
http://www.cn-dos.net/forum/viewthread.php?tid=20999
如何把环境变量path中的路径逐个读出来?
http://www.cn-dos.net/forum/viewthread.php?tid=21008
如何全盘查找某文件并把它的路径加到环境变量中
http://www.cn-dos.net/forum/viewthread.php?tid=21013
如何在批处理用命令行来改变%1的值?
http://www.cn-dos.net/forum/viewthread.php?tid=21014
如何在dir未找到时文件时不显示错误提示
http://www.cn-dos.net/forum/viewthread.php?tid=21021
Last edited by willsort on 2006-6-14 at 17:45 ]