标题: [文件操作] 请教以下BAT代码中的符号所涉及到的相关知识? [打印本页]
作者: 宫商角徵羽 时间: 2013-1-2 16:27 标题: 请教以下BAT代码中的符号所涉及到的相关知识?
新手表示对批处理中出现的符号一头雾水,以下代码符号更是觉得头疼,特向高手请教!
代码如下:- @echo off&setlocal enabledelayedexpansion
- if "%~1"=="" ( 【问题一:此处的“%~1”如何理解? “==”为什么要加双引号?】
- for /f "tokens=*" %%i in (Names.txt) do set /a n+=1&set _!N!=%%i
- for /f "tokens=2 delims=:" %%i in ('%~s0 $^|sort') do ( 【问题二: ('%~s0 $^|sort') 是哪些知识点?】
- set /a M+=1
- for %%j in (!M!) do echo ren %%i "!_%%j!%%~xi" 【问题三:"!_%%j!%%~xi" 如何理解?】
- )
- pause&exit
- ) else for /f "tokens=*" %%i in ('dir /b *.mp3') do (
- for /f "tokens=1*" %%j in ("%%~ni") do set "s= %%k"
- echo;!s:~-8!:"%%i" 【问题四:!s:~-8!:"%%i" 又该如何理解?】
- )
复制代码
作者: BAT-VBS 时间: 2013-1-2 16:36
%~1是获取运行改代码时的第一个位置参数。比如:
如果你在CMD里面运行test.bat hello world
此时%1获取到的就是hello
如果你在CMD里面运行test.bat "hello world" 2013
此时%1获取到的就是"hello world",然后%~1删掉双引号的结果就是hello world
作者: BAT-VBS 时间: 2013-1-2 16:39
双引号不是加给等号的,而是分别加给等号左右两边的两个字符串的。
判断两个字符串是否相等时通常是这样:
"%str1%" == "%str2%"
或者
"%str1%" equ "%str2%"
"%~1"==""的作用就是判断第一个位置参数是否为空
作者: BAT-VBS 时间: 2013-1-2 16:40
问题二: ('%~s0 $^|sort') 是哪些知识点?
http://www.bathome.net/viewthread.php?tid=1290&page=2#pid6306
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |