2015-09-18 31 views
0

我已经在MAXScript的脚本几年作为一种业余爱好,最近才开始使用批处理文件摆弄(所以我很是新手)。如何添加ATTRIB到重命名的文件中FOR循环批处理

我有2个问题:我想申请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只是文件夹本身,但不能触摸文件,因为它们已经被处理。 (我想在两个单独的通行证中执行文件和文件夹,以便我可以在上面的代码中看到进度百分比)。

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

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

setlocal EnableExtensions 
setlocal EnableDelayedExpansion 
+0

只是一味'ATTRIB + H + S “%%〜nf.g”' –

+0

不幸的是这不起作用,它说没有找到文件: –

+0

'任 “%% F”“%%〜NF “g” echo!i !:重命名$ G文件:%%〜nxf attrib + h + s“%%〜nf.g”REM不工作! echo!i !: attrib + h + s $ G file:%%〜nxf' –

回答

0

你尝试

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

试过了,它没有给我找到文件。 –

+0

尝试ATTRIB + S + H “%%〜pf的%%〜nf.g” – Jayapal

+0

ATTRIB + S + H“%%〜PF %%〜nf.g作品!感谢您的帮助!现在我该怎样处理ATTRIB + h + s到第二遍中的子文件夹(根本不处理文件)? –

0

与这些线测试它包括,看看被重命名开始。

echo ren "%%f" "%%~nf.g" 
echo attrib +s +h "%%~dpnf.g" 
pause 
+0

感谢您花时间回复,上面的代码适用于我(由Jayapal提供)attrib + s + h“%%〜 PF %%〜nf.g” –