gpt4 book ai didi

batch-file - 批处理文件中的嵌套命令

转载 作者:行者123 更新时间:2023-12-02 03:29:48 26 4
gpt4 key购买 nike

我正在尝试创建一个简单的批处理文件,它将单独压缩“rar”源目录中的每个文件。 rar 文件的命名应基于文件创建的日期/时间。

难以让名称反射(reflect)准确的日期/时间。当前创建的所有 rar 文件都具有相同的名称。认为问题与嵌套 FOR 命令的使用有关

这里是新手。如果可能,将不胜感激。

setlocal
set _source=H:\Test
set _dest=J:\output

for /f "delims=/ tokens=1-3" %%a in ("%DATE:~4%") do (
for /f "delims=:. tokens=1-4" %%m in ("%TIME: =0%") do (
set _FILENAME=basename%%c%%b%%a%%m%%n%%o%%p
)
)

ECHO %_FILENAME%

for %%I in (%_source%\*.*) DO (

md "%_dest%\%%~nI"
"rar.exe" A -v50M -m0 -k -y -ep1 -r -t -hp[aabbcc] "%_dest%\%%~nI\%_FILENAME%.rar" "%_source%\%%~nxI"
phpar2.exe c -s640000 -r10 -l "%_dest%\%%~nI\%_FILENAME%.par2" "%_dest%\%%~nI\%_FILENAME%*.rar"

)

最佳答案

@echo off
setlocal
set "_source=H:\Test"
set "_dest=J:\output"
setlocal enableDelayedExpansion

for %%I in (%_source%\*.*) DO (
for /f "delims=/ tokens=1-3" %%a in ("%DATE:~4%") do (
for /f "delims=:. tokens=1-4" %%m in ("!TIME: =0!") do (
set _FILENAME=basename%%c%%b%%a%%m%%n%%o%%p
ECHO !_FILENAME!
)
)
md "%_dest%\%%~nI"
"rar.exe" A -v50M -m0 -k -y -ep1 -r -t -hp[aabbcc] "%_dest%\%%~nI\!_FILENAME!.rar" "%_source%\%%~nxI"
phpar2.exe c -s640000 -r10 -l "%_dest%\%%~nI\!_FILENAME!.par2" "%_dest%\%%~nI\!_FILENAME!*.rar"
)

endlocaL
endlocal

这是你想要的吗?您可以嵌套三个循环,但要使用 _FILENAME,您需要 delayedExpansion .

关于batch-file - 批处理文件中的嵌套命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27645486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com