bat批处理脚本几个命令使用记录

2 篇文章 0 订阅
1 篇文章 0 订阅

一、cmd.exe启动参数说明 /c /d

/c 执行 String 指定的命令,执行完后停止,会退出。例如:

@echo off

cmd /c "echo %cd% & echo ddddd & set xxx=12345"

pause

cls

后面的pause和cls也会执行,执行到最后则会退出当前的运行环境(双击运行方式),但当前环境变量xxx不会保留(开始->运行->cmd,然后执行当前bat文件的方式执行完后,再次输入set查看当前环境变量)

/k

执行 String 指定的命令并继续,运行完会保持当前运行窗口及环境变量。例如:

@echo off

cmd /k "echo %cd% & echo ddddd & set xxx=12345"

pause

cls

程序执行完cmd后面字符串的命令后就会暂停执行,所以后面的pause和cls不会执行。但窗口和环境变量会保持。运行方式:双击或从命令行执行当前bat文件都行。

二、打开脚本所在的目录:

1. cd /d %~dp0

cd /d 表示直接转换到后面的路径,否则如果切换盘符,就需要再输入盘符才能切换路径。

d:表示扩展到批处理文件所在的盘符;p表示扩展到批处理文件所在的路径.假如批处理文件在c盘的123文件下的test文件夹下:

c:\123\test\批处理文件:d:表示c:\;p表示123\test\。如果有短路径用%~sdp0,比如:

C:\Documents and Settings\Administrator\桌面\test\新建文件夹 (4)

使用短路径为:C:\DOCUME~1\ADMINI~1\桌面\test\新建文~4\

2. explorer %CD% 这个也可以打开脚本所在的目录

3. 运行脚本后,不退出:

1)在后面加上pause,按任意键就能退出。

2)加上cmd /k停留在当前路径,如果是用explorer %CD%打开的目录路径,最后用这个方法停留在控制台,会新打开批处理所在目录的一个文件夹。在前面加上@关闭这行命令的回显,如@cmd /k。关闭所有的回显: @echo off

4. %cd%与%~dp0的区别

参考:bat脚本%cd%和%~dp0获取当前目录区别_dmfrm的博客-CSDN博客

%cd%是获取执行脚本的目录,%~dp0获取脚本所在的目录。

三、使用函数:

如下是一个最简单的函数写法;以:func开始以goto:eof结束。:func和goto:eof之间的为函数内容,例如这里的echo this is a bat func

:func
echo this is a bat func
goto:eof

 写好了bat函数之后,我们需要调用它。如下代码片段展示了如何在bat脚本中调用函数。其实很简单,就这一句call:func即可。

call:func
pause
:func
echo this is a bat func
goto:eof

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 批处理是一种在Windows操作系统中用于批量处理任务的脚本语言。批处理删除文件名最后几个字的话,我可以编写一个简单的批处理脚本来实现这个功能。 你可以按照以下步骤来完成: 1. 首先,打开一个文本编辑器,新建一个批处理文件,以.bat为扩展名,例如 "delete_last_chars.bat"。 2. 使用以下命令编写脚本内容: ``` @echo off setlocal enabledelayedexpansion set target_dir=D:\your_folder_path\ [这里替换成你实际的文件夹路径] for /R %target_dir% %%F in (*) do ( set "filename=%%~nF" set "extension=%%~xF" set "new_filename=!filename:~0,-number_of_chars!!extension!" ren "%%F" "!new_filename!" ) echo 文件名删除完毕! pause ``` 3. 将 "D:\your_folder_path\" 替换为你想要批量删除文件名最后几个字的文件夹路径。 4. 将 "number_of_chars" 替换为你想要删除的文件名的最后几个字的个数。 5. 保存并关闭文本编辑器。 6. 双击运行批处理文件,它将删除指定文件夹中所有文件名最后几个字的字母。 7. 执行完毕后,命令行窗口会显示 "文件名删除完毕!",按任意键退出。 请注意,运行前最好先备份文件夹中的文件,以免意外删除错误的文件。此外,确保输入的路径和文件名的数量正确无误。 ### 回答2: 批处理是一种用于自动执行一系列命令或操作的脚本,可以用来实现文件操作功能,如删除文件。要实现批处理删除文件名最后几个字的功能,可以使用以下方法: 1. 使用批处理的字符串操作命令。可以通过截取字符串的方式删除文件名最后几个字。以下是一个示例代码: ``` @echo off setlocal enabledelayedexpansion set targetFolder=C:\path\to\folder for /R "%targetFolder%" %%F in (*.bat) do ( set "filename=%%~nF" set "extension=%%~xF" set "newfilename=!filename:~0,-4!!extension!" echo Deleting %%F del "%%F" ) ``` 上述代码中,`set targetFolder=...`用于设置需要进行文件删除操作的文件夹路径。`for /R "%targetFolder%" %%F in (*.bat) do`用于遍历文件夹中的所有.bat文件。`set "filename=%%~nF"`用于获取文件名部分。`set "extension=%%~xF"`用于获取文件后缀。`set "newfilename=!filename:~0,-4!!extension!"`用于截取文件名的开头到倒数第4个字符,然后与文件后缀拼接为新的文件名。`echo Deleting %%F`用于打印正在删除的文件名。`del "%%F"`用于删除文件。 2. 批处理也可以通过使用辅助工具实现删除文件名最后几个字的功能。例如使用第三方工具`PowerShell`来进行字符串截取操作。以下是一个示例代码: ``` @echo off set targetFolder=C:\path\to\folder set powershellExe=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe for /R "%targetFolder%" %%F in (*.bat) do ( set "filename=%%~nF" set "extension=%%~xF" set "command=^& {Write-Output -n %%F; $newfilename = $filename.Substring(0, $filename.Length-4) + $extension; Move-Item -Path %%F -Destination $newfilename}" echo Deleting %%F %powershellExe% -Command "%command%" ) ``` 上述代码中,`set targetFolder=...`用于设置需要进行文件删除操作的文件夹路径。`set powershellExe=...`用于设置PowerShell可执行文件的路径。`for /R "%targetFolder%" %%F in (*.bat) do`用于遍历文件夹中的所有.bat文件。`set "filename=%%~nF"`用于获取文件名部分。`set "extension=%%~xF"`用于获取文件后缀。然后使用PowerShell命令进行字符串截取操作,并将新文件名与原文件进行重命名操作。 `echo Deleting %%F`用于打印正在删除的文件名。`%powershellExe% -Command "%command%"`用于执行PowerShell命令。 以上是两种使用批处理删除文件名最后几个字的方法,根据具体情况选择适合自己的方法进行操作。 ### 回答3: 批处理是一种可以批量处理多个文件或任务的脚本语言。在批处理中,我们可以使用一些命令来删除文件名的最后几个字。下面是一个示例的批处理脚本,可以删除目录中所有文件名的最后3个字: ``` @echo off setlocal EnableDelayedExpansion set targetFolder=C:\path\to\your\folder for %%F in ("%targetFolder%\*.*") do ( set "filename=%%~nF" set "extension=%%~xF" set "newFilename=!filename:~0,-3!!extension!" echo Deleting: %%F echo Renaming to: !newFilename! ren "%%F" "!newFilename!" ) echo All files have been renamed and processed. endlocal ``` 在这个脚本中,我们首先设置了一个变量`targetFolder`,用于指定目标文件夹的路径。然后,我们使用`for`循环遍历该文件夹下的所有文件。对于每个文件,我们获取它的文件名和扩展名,并使用`set`命令进行处理。 在这个例子中,我们使用`!filename:~0,-3!`来截取文件名的前N个字符,其中N为要删除的字符数。然后,我们将新的文件名和原扩展名结合起来,并使用`ren`命令进行文件重命名。 脚本执行完成后,将显示所有已重命名和处理的文件。 请注意,执行批处理脚本有一定风险,请确保在执行前备份所有文件,以防意外删除或重命名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cffy625

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值