我已经有了这个批处理代码:
@echo off
setlocal
:PROMPT
SET /P AREYOUSURE=Are you sure (Y/[N])?
IF /I "%AREYOUSURE%" NEQ "Y" GOTO END
@echo off
pushd %*
for %%j in (*) do if /I not "%%j"=="%~nx0" type nul > "%%j"
popd
我想为所有子文件夹中的所有文件创建一个0字节备份。所以,如果我失去了它们,我会知道要重新下载什么。不应清除批处理文件本身。
此代码必须更改哪些内容才能在所有子文件夹中的所有文件上运行?
答案 0 :(得分:0)
FORFILES
是你的朋友!语法是:
forfiles [/p <Path>] [/m <SearchMask>] [/s] [/c "<Command>"] [/d [{+|-}][{<Date>|<Days>}]]
/s
选项将使您的脚本查看子文件夹。这应该有效:
@echo off
setlocal
:PROMPT
SET /P AREYOUSURE=Are you sure (Y/[N])?
IF /I "%AREYOUSURE%" NEQ "Y" GOTO END
FORFILES /S /C "CMD /C IF @ISDIR==FALSE IF NOT @FILE==\"%~nx0\" type nul > @PATH"
FORFILES构造中的可能变量是:
@FILE
:文件名。@FNAME
:文件名无扩展名。@EXT
:文件扩展名。@PATH
:文件的完整路径。@RELPATH
:文件的相对路径。@ISDIR
:如果文件类型是目录,则求值为TRUE。否则,此变量的计算结果为FALSE。@FSIZE
:文件大小,以字节为单位。@FDATE
:文件上的最后修改日期戳。@FTIME
:文件上的上次修改时间戳。有关详细信息,请查看https://technet.microsoft.com/en-us/library/cc753551.aspx。
编辑:添加了文件夹