⑴ bat源码 for循环节 set无效 bat读取
楼主,你好:
代码我倒是能帮你搞定(启不启用用变量延迟都可以)。但你在hi里说话太不客气了,我虽然是来学习的,但也需要别人对我的尊敬。不帮你又有点过意不去(毕竟我从你的问题里学到了知识),帮你又有点对不起自己。楼主,你说我应该如何做?
也可以这么说,你自己看代码吧
@echo off
for /l %%i in (100,1,150) do set /a a=%%i&call:RR
echo.&echo ok&pause>nul
exit
:RR
for /f "tokens=* delims=0" %%a in ("%a%") do set /a b=%%a-"!(%%a%%2)
echo a=%a%
echo b=%b%
pause
echo "%CD%\a\ag%b%.jpg" "%CD%\%a%\10.jpg"
echo "%CD%\b\ai%b%.jpg" "%CD%\%a%\9.jpg"
echo "%CD%\c\zy%a%.jpg" "%CD%\旁慧%a%\2.jpg"
echo "%CD%\d\zo%a%.jpg" "%CD%\%a%\1.jpg"
echo "%CD%\e\zz%a%.jpg" "%CD%\%a%\3.jpg"
echo "%CD%\f\yb%a%.jpg" "%CD%\%a%\4.jpg"
echo "%CD%\g\yd%a%.jpg" "%CD%\%a%\5.jpg"
echo "%CD%\h\zn%a%.jpg" "%CD%\%a%\6.jpg"
echo "%CD%\i\zx%a%.jpg" "%CD%\%a%\7.jpg"
echo "%CD%\j\yo%a%.jpg" "%CD%\%a%\8.jpg"
goto:eof
我在代码衫启唤里每个前加了echo 和以下一小段代码
echo a=%a%
echo b=%b%
pause
做输出a、b值用,你测试完后将其删除即可。
另,你对比下面的这个批的运行结果看一下你就知道for /f "tokens=* delims=0" %%a in ("%a%") do set /a b=%%a-"!(%%a%%2)中!的作用了。这个的作用不是取奇偶值,但在你的批处理中的切起到了取奇偶值的作用。好或凯像是取余数。
@echo off
for /l %%i in (100,1,150) do set /a a=%%i&call:RR
echo.&echo ok&pause>nul
exit
:RR
for /f "tokens=* delims=0" %%a in ("%a%") do set /a b=%%a-"(%%a%%2)
echo a=%a%
echo b=%b%
pause
echo "%CD%\a\ag%b%.jpg" "%CD%\%a%\10.jpg"
echo "%CD%\b\ai%b%.jpg" "%CD%\%a%\9.jpg"
echo "%CD%\c\zy%a%.jpg" "%CD%\%a%\2.jpg"
echo "%CD%\d\zo%a%.jpg" "%CD%\%a%\1.jpg"
echo "%CD%\e\zz%a%.jpg" "%CD%\%a%\3.jpg"
echo "%CD%\f\yb%a%.jpg" "%CD%\%a%\4.jpg"
echo "%CD%\g\yd%a%.jpg" "%CD%\%a%\5.jpg"
echo "%CD%\h\zn%a%.jpg" "%CD%\%a%\6.jpg"
echo "%CD%\i\zx%a%.jpg" "%CD%\%a%\7.jpg"
echo "%CD%\j\yo%a%.jpg" "%CD%\%a%\8.jpg"
goto:eof
⑵ 批处理 if exist 判断两个文件
1、批处理:if作为判断真假的 if 只有两种可能, 真 和 假, 真就执行, 假就不执行,下面的%1是要输入的参数.pause是暂停not是将真假颠倒(真的变成假的, 假的变成真的)echo是打印字符串。
5、if 用来判断条件的真假, 而if exist用来判断文件的真假。
⑶ 谁知道DOS的一些基本的命令啊写给我可以吗
文件名是由文件路径和文件名称合起来的,如C:\DOS\COMMAND.COM。
DIR 显示文件和文件夹(目录)。
用法:DIR [文件名] [选项]
它有很多选项,如/A表示显示所有
文件(即包括带隐含和系统属性的文件),/S表示也显示子文件夹中的文件,/P表示分屏显示,/B表示只显示文件名,等等。
如 DIR A*.EXE /A /P
此命令分屏显示当前文件夹下所有以A开头后缀为EXE的文件(夹)。
CD或CHDIR 改变当前文件夹。
用法:CD [文件夹名]
若无文件夹名则显示当前路径。
MD或MKDIR 建立文件夹。
用法:MD 文件夹名
RD或RMDIR 删除文件夹。
用法:RD 文件夹名
注意:此文件夹必须是空的。
DEL或ERASE 删除文件。
用法:DEL/ERASE 文件名
COPY 拷贝文件。
用法: COPY 文件名1 [文件名2] [选项]
如 COPY /B A+B C
此命令将两个二进制文件A和B合为一个文件C。
TYPE 显示文件内容。
用法:TYPE 文件名
REN或RENAME 改变文件名,在DOS7中还可以改变文件夹名。
用法:REN 文件(夹)名1 文件(夹)名2
EDIT 编辑文件,在DOS7中还可以编辑二进制文件。
用法:EDIT [文件名] [选项]
如 EDIT /70 C:\COMMAND.COM
此命令以二进制方式编辑C:\COMMAND.COM文件。
FORMAT 格式化磁盘。
用法:FORMAT 驱动器 [选项]
它的选项很多,如/Q是快速格式化,/U表示无条件格式化(即无法使用UNFORMAT等命令恢复),/V指定磁盘的卷标名,等等。它还有许多未公开参数。
MEM 显示内存状态。
用法:MEM [选项]
它的选项也有不少,如/C可列出所有程序的内存占用,/D是显示驻留内存的程序及设备驱动程序的状态等详细信息,/F显示空闲的内存总量,/M显示内存中的模块信息,/P则是分屏显示。还有隐藏的/A选项,可以显示HMA信息。
MOVE 移动文件或文件夹,还可以更改文件或文件夹的名称。
用法:MOVE 文件[夹]1 文件[夹]2
如 MOVE C:\*.EXE D:
此命令可以将C盘根文件夹下所有扩展名为EXE的文件移到D盘上。
XCOPY 复制文件或文件夹。
用法:XCOPY 文件[夹]名1 [文件[夹]名2] [选项]
它的选项非常多,如/S可拷贝整个文件夹(包括子文件夹)中的文件,/E指定包括空文件夹,/V表示复制完后检验复制出的文件的正确性,/Y表示确认,等等。
CLS 清除屏幕。
用法:CLS
SYS 传导系统,即将系统文件(如IO.SYS等)从一处传输到指定的驱动器中。
用法:SYS 文件夹名 [驱动器]
如 SYS C:\DOS A:
此命令即可将位于C:\DOS文件夹下的系统文件传输到A盘中。
DATE 显示或设置日期。
用法:DATE [日期]
TIME 显示或设置时间。
用法:TIME [时间]
DOS还自带一些其它的命令,如SORT(排序),FIND(寻找字符)等。