Batch file 批处理文件重命名
我有个小问题:'(: 我有很多txt文件,每天都会收到越来越多的文件,出于安全考虑,我需要对它们进行备份和加密,因此我制作了一个批处理脚本:Batch file 批处理文件重命名,batch-file,Batch File,我有个小问题:'(: 我有很多txt文件,每天都会收到越来越多的文件,出于安全考虑,我需要对它们进行备份和加密,因此我制作了一个批处理脚本: @echo off FOR /R d:\txtwork %%G in (**.txt **.trt) DO ( certutil -f -encode "%%G" "%%G.bak" echo. >>D:\txtwork\logs\logbak1.txt %time:~0,-6% - Made a back-up of file - "%%G
@echo off
FOR /R d:\txtwork %%G in (**.txt **.trt) DO (
certutil -f -encode "%%G" "%%G.bak"
echo. >>D:\txtwork\logs\logbak1.txt %time:~0,-6% - Made a back-up of file - "%%G"
)
好的,这很好用,但我想做一个批处理来解码它们,并将扩展名更改为旧的扩展名(从.txt.bak或.trt.bak到.txt或.trt),所以我尝试了以下方法:
@echo off
FOR /R d:\txtwork %%G in (**.bak) DO (
certutil -f decode "%%G" "%%G:~0,-4"
)
但它不起作用,所以我试了一下
@echo off
FOR /R d:\txtwork %%G in (**.bak) DO (
set var_1="%%G"
certutil -f decode "%var_1%" "%var_1:~0,-4%"
)
它也不起作用。
帮助?
完全错误“%%G:~0,-4”
- 要检索
变量的值,您需要启用并使用var\u 1
而不是!var\u 1!
,尽管这样做会带来另一个问题:%var\u 1%
将扩展到certutil-f decode“!var_1!”!var_1:~0,-4!”
(注意双引号)certutil-f decode”“something.txt.bak”“something.txt”“
- 使用next
命令语法:set
(注意第一个双引号位置)set“var_1=%%G”
@echo off
SETLOCAL EnableExtensions DisableDelayedExpansion
FOR /R d:\txtwork %%G in (**.bak) DO (
set "var_1=%%G"
SETLOCAL EnableDelayedExpansion
certutil -f decode "!var_1!" "!var_1:~0,-4!"
ENDLOCAL
)
但是,您可以使用以下方法:
@echo off
SETLOCAL EnableExtensions
FOR /R d:\txtwork %%G in (**.bak) DO (
certutil -f decode "%%G" "%%~dpnG"
)
您遇到的错误是什么?它不起作用不是一个有用的问题描述。它以什么具体方式不起作用?如果您希望我们帮助您,您必须清楚明确地解释您遇到的问题,并提出实际问题。它也不起作用。帮助?不是问题。