批处理shift运算符
2022/4/5 23:21:12
本文主要是介绍批处理shift运算符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
命令行参数的一个限制是它只能接受直到%9的参数。 下面来举一个限制的例子。
示例
@echo off echo %1 echo %2 echo %3 echo %4 echo %5 echo %6 echo %7 echo %8 echo %9 echo %10
如上面的代码存储在一个名为test.bat
的文件中,并且该文件运行为 -
test.bat a b c d e f g h i j
接下来将是输出 -
a b c d e f h i a0Shell
从上面的输出中可以看出,应该显示为“j”
的最终值显示为a0
。 这是因为没有参数被称为%10
。
通过使用SHIFT
运算符可以避免此限制。 在批处理文件处理完第一个参数之后,可以将它们SHIFT(只是用SHIFT
命令插入一行),结果是%1
得到值b
,%2
得到值c
,等等,直到%9
, 现在得到值j
。继续这个过程,直到至少%9
为空。
我们来看一个如何使用SHIFT
运算符来克服命令行参数限制的例子。
示例
@ECHO OFF :Loop IF "%1"=="" GOTO Continue echo %1% SHIFT GOTO Loop :ContinueBat
如果上面的代码存储在一个名为test.bat
的文件中,并且该文件运行为 -
test.bat a b c d e f g h i jBat
如下输出结果 -
a b c d e f h i jShell
注意
命令行中的某些字符被批处理文件忽略,具体取决于DOS版本,它们是否被“转义”,通常取决于它们在命令行中的位置 -
- 逗号(
,
)被替换为空格,除非它们是双引号中的字符串的一部分。 - 分号(
;
)被替换为空格,除非它们是双引号中的字符串的一部分。 =
字符有时被空格替换,而不是在双引号中是字符串的一部分。- 第一个正斜杠(
/
)只有紧跟在命令之后,才会被一个空格替换,而没有前导空格。 - 多个空格被替换为一个空格,除非它们是双引号中的字符串的一部分。
- 选项卡由一个空格替换。
- 第一个命令行参数之前的空格将被忽略。
- 最后一个命令行参数后面的空格将被修剪。
出处:https://www.yiibai.com/batch_script/batch_script_using_shift_operator.html
=======================================================================================
批处理命令学习笔记——Shift命令
Shift 命令
更改批处理文件中可替换参数的位置。
语法:
Shift [/n]
如果命令扩展名被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉命令从第 n 个参数开始移位;n 介于零和八之间。否则,从第1个参数开始移位。
通过shift命令,可以让命令行上的命令使用超过9个(%1~%9,%0是批处理命令本身)以上的可替代参数。
示例:
ECHO OFF
ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9
SHIFT
ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9
SHIFT
ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9
执行结果如下:
C:\> SHIFT.BAT 1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 10
3 4 5 6 7 8 9 10 11
带参数的SHIFT命令执行示例如下:
Shift /2
上面的命令会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。
事实上,处理命令行上9个以上的参数,亦可以使用for命令组合%*来完成。
示例:
for %%a in (%*) do echo %%a
出处:https://blog.csdn.net/qq_33336155/article/details/53516990
这篇关于批处理shift运算符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26手写消息中间件:从零开始的指南
- 2024-11-26Java语音识别项目资料:新手入门教程
- 2024-11-26JAVA语音识别项目资料:新手入门教程
- 2024-11-26Java语音识别项目资料:入门与实践指南
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料:新手入门教程
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解