返回列表 回复 发帖

BAT文件中常用命令小结

本帖最后由 SlamDunk 于 2010-7-8 13:55 编辑

echo、@、call、pause、rem(小技巧:用::代替rem)

echo
     表示显示此命令后的字符
echo off
    表示在此语句后所有运行的命令都不显示命令行本身
@
         与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示
     这一行的命令行(只能影响当前行)。
call
        调用另一个批处理文件(如果不用call而直接调用别的批处理文件,
     那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
pause
        运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,
     等待用户按任意键后继续
rem
       表示此命令后的字符为解释行(注释),不执行,
     只是给自己今后参考用的(相当于程序中的注释)。
%1~9%
    批处理文件的参数 %0表示批处理本身

IF EXIST
       是用来测试文件是否存在的,格式为
     IF EXIST [路径+文件名]

IF STRING1 == STRING2
     判断两字符串是否相同

GOTO
     跳转到指定标号
    (1) 标号前是ASCII字符的冒号":",冒号与标号之间不能有空格。
   (2) 标号的命名规则与文件名的命名规则相同。
   (3) DOS支持最长八位字符的标号,当无法区别两个标号时,将跳转至最近的一个标号。
本帖最后由 SlamDunk 于 2010-7-8 13:55 编辑

本人的工作的一个小玩意
@echo off&setlocal enabledelayedexpansion

cls

if exist %1.ini (
echo del ini file..
del %1.ini
)
echo start create ini file....

echo [MainParam] >>%1.ini
echo PkaName:         %1.pka>> %1.ini
>>%1.ini set/p=DestDir:        <nul
cd>>%1.ini
rem echo DefaultRun:         51pk%1.pko>> %1.ini
>>%1.ini set/p=DefaultRun:        <nul
:: dir/b *.pko >>%1.ini

for /f "tokens=1* delims=." %%a in ('dir /b/n *.pko') do (
                echo %%a>> %1.ini
                echo.>> %1.ini
                echo [Section] >>%1.ini
    echo Name:                %%a>> %1.ini
    >>%1.ini set/p=FullPath:        <nul
    dir /s/b/n %%a.%%b >> %1.ini
    echo DataType:        pko>> %1.ini
    echo.>> %1.ini
    goto PicSection
    )

:PicSection
for /f "tokens=1* delims=." %%a in ('dir /b/n *.png') do (
                echo [Section] >>%1.ini
    echo Name:                %%a>> %1.ini
    >>%1.ini set/p=FullPath:        <nul
    dir /s/b/n %%a.%%b >> %1.ini
    echo DataType:        png>> %1.ini
    echo.>> %1.ini
    )

echo create %1.ini done!
type %1.ini

echo start create pka
call PkaPack %1.ini
echo create pka done...
返回列表