BAT脚本编程_%1和%~1区别

在BAT脚本 编程中,%1和%~1都代表用户参数。但是二者是有区别的,主要体现在参数含有引号的情况:


@echo off
call :sub "abc"
pause
call :sub abc"
pause
call :sub "abc
pause
goto :eof
:sub
echo %1 %~1

保存上面的命令到 test.bat文件中运行可以看到。


总结:当参数以引号开头时,%~1会自动将引号删除。

### 编写BAT脚本的基础方法 BAT脚本是一种基于Windows命令提示符(CMD)的简单脚本语言,主要用于自动化任务批量处理操作。以下是关于如何使用BAT脚本来进行编程的一些基本指导。 #### 1. 基础结构 BAT脚本通常由一系列命令组成,这些命令可以在CMD窗口中运行。为了创建一个BAT脚本文件,可以使用任何文本编辑器(如Notepad),并将文件保存为`.bat`扩展名。例如: ```batch @echo off echo Hello, this is a batch script. pause ``` 上述代码展示了最简单的BAT脚本[^4]。其中: - `@echo off` 表示关闭命令回显。 - `echo` 是用于向控制台输出信息的命令。 - `pause` 让程序暂停并等待用户按键继续。 #### 2. 变量与参数 在BAT脚本中,可以通过设置变量来存储数据,并通过传递参数使脚本更具灵活性。例如: ```batch set name=World echo Hello %name% ``` 这里定义了一个名为`name`的变量,并将其赋值为`World`。随后,在`echo`语句中引用了这个变量[^1]。 对于参数传递,BAT脚本支持 `%1`, `%2`, ... 来表示传入的第一个、第二个参数等。如下所示: ```batch @echo off if "%1"=="" ( echo No argument provided. ) else ( echo Argument received: %1 ) pause ``` 这段代码检查是否有提供参数;如果没有,则打印一条消息说明未接收到参数。 #### 3. 控制流 BAT脚本也提供了条件判断循环等功能,使得复杂逻辑得以实现。比如下面的例子演示了如何利用`for`循环遍历特定类型的文件[^3]: ```batch for %%c in (*.bat *.txt) do type %%c ``` 此行代码会读取当前目录下的所有`.bat` `.txt` 文件内容到屏幕上。 另外还有常用的`if...else` 结构来进行分支决策: ```batch choice /C YN /M "Do you want to continue?" if errorlevel 2 exit if errorlevel 1 goto :continue_process :continue_process echo Continuing with the process... ``` 在这里,`choice` 提供了一种交互方式让用户选择是否继续执行某些部分。 #### 4. 实际应用案例 假设我们需要定期清理某个指定路径下的临时文件夹内的所有子项,那么可以用以下脚本完成这一需求: ```batch @echo off set target_dir=C:\Temp\ToBeDeleted del /Q /S %target_dir%\* rd /S /Q %target_dir% mkdir %target_dir% echo Cleanup completed successfully. pause ``` 以上脚本先删除目标文件夹里的全部项目(`del`) ,再移除整个文件夹本身 (`rd`) 并重新建立它(`mkdir`) 。最后通知用户已完成清理过程[^2]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值