我正在尝试使用此
使每个文件在某些文件夹下可写/ d / r。在(nbproject)中的%% d做@if存在" %% d" dir" %% d" / S | attrib -R / S / D" %% d"
在文件夹内
dir" %% d" / S | attrib -R
完美无缺。但是当从批处理脚本运行时,它无法做正确的事情。请指教。
答案 0 :(得分:6)
使用这样的嵌套循环:只需将文件夹名称更改为您选择的文件夹即可。
@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
命令一起使用,尤其是在管道输出时。.
。未指定时假定当前目录。~
删除现有的引号,以便不会出现双引号。/S
中使用attrib
时,dir
不需要for /d /r %%d in (nbproject) do @if exist "%%~d" dir "%%~d" /B /S | attrib -R /D
选项。示例:
{{1}}