加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 使文件递归写入

发布时间:2020-12-14 04:37:33 所属栏目:Windows 来源:网络整理
导读:我试图使用这个使某些文件夹下的每个文件都可写 for /d /r . %%d in (nbproject) do @if exist “%%d” dir “%%d” /S | attrib -R /S /D “%%d” 当在文件夹内时 dir “%%d” /S | attrib -R 工作得非常好.但是当从批处理脚本运行时,它无法做正确的事情.请
我试图使用这个使某些文件夹下的每个文件都可写

for /d /r . %%d in (nbproject) do @if exist “%%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变量.只需要一个.使用&符号如果使用带有attrib的d变量,则删除d变量.
>在dir命令中使用/ b选项,尤其是在管道输出时.
>没有必要.在for命令中.未指定时,假定当前目录.
>引用循环变量时,使用波浪号?删除现有的周围引号,以便不会出现双引号.
>在dir中使用attrib时,不需要/ S选项.

例:

for /d /r %%d in (nbproject) do @if exist "%%~d" dir "%%~d" /B /S | attrib -R /D

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读