dos批处理语句: for /f do 的用法哪个是正确的?或者斗不对?为什么?
答案:1 悬赏:50 手机版
解决时间 2021-04-03 02:24
- 提问者网友:刺鸟
- 2021-04-02 17:32
dos批处理语句: for /f do 的用法哪个是正确的?或者斗不对?为什么?
最佳答案
- 五星知识达人网友:慢性怪人
- 2021-04-02 18:42
都不对。do里面的写法是第2种对,但你缺了循环变量啊!
for /f "tokens=1,2,3 delims=/-" %%i do (commond1
commond2
commond3
……
)
第1种写法应该是:
for /f "tokens=1,2,3 delims=/-" %%i do commond1&&commond2&&commond3
但如果语句太多或太长,建议采用多行书写。追问Do后面的命令加()可以吗?
for /f "tokens=1,2,3 delims=/-" %%i do (commond1&&commond2&&commond3)Dos命令下,尤其是在for %i in (set) do 中,()里的单引号,双引号用法可以等同对待不?追答 Do后面的命令如果是单行,则可以省略(),如果是多行不能省略——其他语句类似,if语句后面的()是否可省也是看是单行还是多行。
在【for /f ["usebackq"] %%i in (set) do command】命令中,单引号、双引号、重音符,以及三者都不加的含义如下:
A、不使用"usebackq":
0.什么都不加:这是一个文件
示例:for /f %%i in (C:\123.txt) do echo %%i
执行结果:输出文件"C:\123.txt"中的内容
1、单引号表示这是一条命令
示例:for /f %%i in ('C:\123.txt') do echo %%i
执行结果:打开文件“C:\123.txt”
2、重音符没有特殊含义
示例:for /f %%i in (`C:\123.txt`) do echo %%i
执行结果:由于这里,重音符没有特殊含义,所以语法上与与“什么都不加”含义一样,但多了这2个字符,就不是一个合法的路径了,因此会提示找不到文件。
3、双引号表示这是一个字符串
示例:for /f %%i in ("C:\123.txt") do echo %%i
执行结果:输出字符串“C:\123.txt”
B、不使用"usebackq":
0.什么都不加:语法错误
示例:for /f "usebackq" %%i in (C:\123.txt) do echo %%i
执行结果:语法错误,要使用"usebackq"就必须至少使用这三种符号之一
1、单引号表示这是一个字符串
示例:for /f "usebackq" %%i in ('C:\123.txt') do echo %%i
执行结果:输出字符串“C:\123.txt”
2、重音符表示这是一条命令
示例:for /f "usebackq" %%i in (`C:\123.txt`) do echo %%i
执行结果:打开文件“C:\123.txt”
3、双引号表示这是一个文件
示例:for /f "usebackq" %%i in ("C:\123.txt") do echo %%i
执行结果:输出文件"C:\123.txt"中的内容排版好像有点问题,B组示例中的for /f和"usebakq"之间有1个空格。追问感谢!
for /f "tokens=1,2,3 delims=/-" %%i do (commond1
commond2
commond3
……
)
第1种写法应该是:
for /f "tokens=1,2,3 delims=/-" %%i do commond1&&commond2&&commond3
但如果语句太多或太长,建议采用多行书写。追问Do后面的命令加()可以吗?
for /f "tokens=1,2,3 delims=/-" %%i do (commond1&&commond2&&commond3)Dos命令下,尤其是在for %i in (set) do 中,()里的单引号,双引号用法可以等同对待不?追答 Do后面的命令如果是单行,则可以省略(),如果是多行不能省略——其他语句类似,if语句后面的()是否可省也是看是单行还是多行。
在【for /f ["usebackq"] %%i in (set) do command】命令中,单引号、双引号、重音符,以及三者都不加的含义如下:
A、不使用"usebackq":
0.什么都不加:这是一个文件
示例:for /f %%i in (C:\123.txt) do echo %%i
执行结果:输出文件"C:\123.txt"中的内容
1、单引号表示这是一条命令
示例:for /f %%i in ('C:\123.txt') do echo %%i
执行结果:打开文件“C:\123.txt”
2、重音符没有特殊含义
示例:for /f %%i in (`C:\123.txt`) do echo %%i
执行结果:由于这里,重音符没有特殊含义,所以语法上与与“什么都不加”含义一样,但多了这2个字符,就不是一个合法的路径了,因此会提示找不到文件。
3、双引号表示这是一个字符串
示例:for /f %%i in ("C:\123.txt") do echo %%i
执行结果:输出字符串“C:\123.txt”
B、不使用"usebackq":
0.什么都不加:语法错误
示例:for /f "usebackq" %%i in (C:\123.txt) do echo %%i
执行结果:语法错误,要使用"usebackq"就必须至少使用这三种符号之一
1、单引号表示这是一个字符串
示例:for /f "usebackq" %%i in ('C:\123.txt') do echo %%i
执行结果:输出字符串“C:\123.txt”
2、重音符表示这是一条命令
示例:for /f "usebackq" %%i in (`C:\123.txt`) do echo %%i
执行结果:打开文件“C:\123.txt”
3、双引号表示这是一个文件
示例:for /f "usebackq" %%i in ("C:\123.txt") do echo %%i
执行结果:输出文件"C:\123.txt"中的内容排版好像有点问题,B组示例中的for /f和"usebakq"之间有1个空格。追问感谢!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯