3
我试图用这个使文件可写递归
用于/ d/r选择特定文件夹下的所有文件写。 %n d in(nbproject)do @if exists“%% d”dir“%% d”/ S | ATTRIB -R/S/d “%% d”
一个文件夹
DIR “%% d”/ S时内部| attrib -R
完美无缺。但是从批处理脚本运行时,它无法做正确的事情。请指教。
我试图用这个使文件可写递归
用于/ d/r选择特定文件夹下的所有文件写。 %n d in(nbproject)do @if exists“%% d”dir“%% d”/ S | ATTRIB -R/S/d “%% d”
一个文件夹
DIR “%% d”/ S时内部| attrib -R
完美无缺。但是从批处理脚本运行时,它无法做正确的事情。请指教。
使用如下所示的嵌套循环:只需将文件夹名称更改为您选择的文件夹即可。
@echo off
for /D /R %%D in (nbproject Folder2 Folder3) do if exist "%%~fD" (
pushd "%%~fD"
for /R %%F in (*) do if exist "%%~fF" attrib -R "%%~fF" /D
popd
)
一个内胆:
for /D /R %%D in (nbproject Folder2 Folder3) do @if exist "%%~fD" @cd /D "%%~fD" && for /R %%F in (*) do @if exist "%%~fF" attrib -R "%%~fF" /D
让我们也打破你的第一行代码的原因它可能会失败。
dir
输出到attrib
和使用该d
变量。只需要一个。如果使用d
变量与attrib
,则使用&
符号,否则请删除d
变量。/b
选项和dir
命令,特别是在管道输出时。.
。未指定时假定当前目录。~
删除现有的周围引号,以避免发生双引号。dir
中使用attrib
时,不需要/S
选项。例子:
for /d /r %%d in (nbproject) do @if exist "%%~d" dir "%%~d" /B /S | attrib -R /D
三江源的解释,但是这使得所有文件写的,在nbproject文件的同一层级的所有文件夹。尝试了一些变化,但无法完成。 –
@BasitAnwer我修复了我的代码,只搜索有问题的目录。不过,我修正的代码对我来说工作得很好。您所要做的就是将每个文件夹名称添加到第一个for循环父项内的空格分隔列表中。 –
对不起,但你修复的代码不工作......尝试一些后,我设法让它工作==== for/d/r。 %n d in(nbproject)do @if exists“%%〜d”dir“%% d”/ S | attrib -R“%%〜d”\ *。*/S/D –