我正在尝试使用此方法使每个文件在某些文件夹下都可写
对于 /d /r 。%%d in (nbproject) do @if exists "%%d" dir "%%d" /S | 属性 -R /S /D "%%d"
在文件夹中时
目录 "%%d" /S | 属性-R
工作得很好。但是从批处理脚本运行时,它无法正确执行操作。请指教。
我正在尝试使用此方法使每个文件在某些文件夹下都可写
对于 /d /r 。%%d in (nbproject) do @if exists "%%d" dir "%%d" /S | 属性 -R /S /D "%%d"
在文件夹中时
目录 "%%d" /S | 属性-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
命令一起使用,尤其是在管道输出时。.
for 命令中不需要。未指定时假定为当前目录。~
删除现有的周围引号,这样就不会出现双引号。/S
不需要该选项。attrib
dir
例子:
for /d /r %%d in (nbproject) do @if exist "%%~d" dir "%%~d" /B /S | attrib -R /D