如何从上下文菜单中将批处理文件中的命令应用于选定的文件

如何从上下文菜单中将批处理文件中的命令应用于选定的文件

我收到了一个请求,要求我创建一个位于上下文菜单中的脚本,以便轻松地将文件重命名为当前日期和时间。我已经能够编写大部分脚本,但最后一行却卡住了……

到目前为止,我所拥有的是由日期时间部分组成的批处理文件,它将用作新文件名:

@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set ldt=%ldt:~0,4%%ldt:~4,2%%ldt:~6,2%_%ldt:~8,2%%ldt:~10,2%%ldt:~12,2%
echo %ldt%

结果20210921_120738是我想要的文件名。echo %ldt% 是为了文档目的,并将从最终脚本中删除。

脚本的下一步是重命名文件:类似于ren "selected file" %ldt%

我似乎无法弄清楚的是批处理文件中对选定文件应用重命名命令的最后一行。

我一直在尝试各种方法:cmd /c for /f do ren "%1" %ldt%但没有效果......

答案1

两个错误:

  • 上下文菜单命令应该是:

      C:\\script\\rename.bat "%1"
    
  • 批处理文件中的行应该是:

      cmd /c ren "%1" %ldt%%~x1
    

相关内容