如何批量添加attrib到FOR循环中的重命名文件

诺克斯将军

几年来,我一直在用maxscript编写脚本,这是我的业余爱好,但最近才开始摆弄批处理文件(所以我是一个新手)。

我有两个问题:重命名扩展名后,我想将attrib应用于循环中的文件(遍历文件列表)。到目前为止,这是我所拥有的(使用我在网上找到的代码在批次的窗口标题中添加进度%):

set n=0
for /r %~d0\$RECYCLE.DATA\$DELETED\[_$G]\ %%f in (*.jpg) do set /a n+=1
echo File count = %n%

rem Fill "bar" variable with 70 characters
set "bar="
for /l %%i in (1,1,70) do set "bar=!bar!|"

rem Fill "space" variable with filler spaces
set "space="
for /l %%i in (1,1,1) do set "space=!space!"

rem "Process" the files and show the progress bar in the title
set i=0

for /r %~d0\$RECYCLE.DATA\$DELETED\[_$G]\ %%f in (*.jpg) do (
    set /a i+=1, percent=i*100/n, barLen=70*percent/100
    for %%a in (!barLen!) do title !percent!%% !bar:~0,%%a!%space%
    ren "%%f" "%%~nf.g"
    attrib +s +h "%%~nf.g" REM DOESN'T WORK!!
    echo !i!:  Collapsing $G %%~nxf  
)

我在“ attrib + s + h“ %%〜nf.g” REM不起作用!与%% f一起使用,但它给了我一个找不到文件的错误(我想是因为它被重命名了)。我们如何在刚刚重命名的循环中将attrib + h + s添加到该特定文件中?

第二个问题是如何将“ attrib + s + h”仅应用于父文件夹及其本身的子文件夹,而根本不触摸其中的文件?批处理文件位于父文件夹之外。

我想做的是在父文件夹的子文件夹内的目录内重命名文件扩展名,将attrib + h + s应用于其各自子文件夹内的每个重命名文件,然后将attrib + h + s应用于文件夹本身,但由于文件已被处理,因此请勿触摸文件。(我想通过2个单独的通道来处理文件和文件夹,以便可以在上面的代码中看到进度%)。

感谢您的事先帮助,我真的很感激!

编辑:我的脚本顶部有这些设置->

setlocal EnableExtensions
setlocal EnableDelayedExpansion 
贾亚帕尔

你试过了吗

attrib +s +h "%%~nf.g"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章