使用 FORFILES 命令抑制输出字符串
Suppress output string using FORFILES command
我想使用 forfiles
:
忽略输出 @ftime
的秒数
forfiles /P "%userprofile%\Desktop\folder" /M "test.rar" /C "cmd /c echo sucessufull at %@ftime:~0,2%:%@ftime:~3,2%h"
尝试使用这种方式,但我认为 forfiles
不允许使用 %
。
forfiles
的特殊@
-变量,如@ftime
,与普通环境变量无关,%
-符号用于扩展他们。
有两种选择:
用for /F
捕获forfiles
的输出:
for /F "tokens=1-2 delims=:" %%I in ('
forfiles /P "%UserProfile%\Desktop\Folder" /M "test.rar" /C "cmd /C if @isdir==FALSE echo @ftime"
') do (
echo successful at %%I:%%Jh
)
在 forfiles
:
内嵌套 for /F
循环
forfiles /P "%UserProfile%\Desktop\Folder" /M "test.rar" /C "cmd /C if @isdir==FALSE for /F 0x22tokens=1-2 delims=:0x22 %%I in (0x22@ftime0x22) do echo successful at %%I:%%Jh"
十六进制代码 0x22
代表引号 "
并且只有 forfiles
可以理解。
这是直接使用 forfiles 命令的基本示例,以保持主题:
@ForFiles /P "%UserProfile%\Desktop\folder" /M "test.rar" /C "Cmd /V /C Set _=@FTime&Echo successful at !_:~,5!"
还有一个 complete/robust 例子:
@"%__AppDir__%forfiles.exe" /P "%UserProfile%\Desktop\folder" /M "test.rar" /C "0x22%__AppDir__%cmd.exe0x22 /V /C If @IsDir==FALSE (Set 0x22_=@FTime0x22 & Echo successful at !_:~,5!)"
我想使用 forfiles
:
@ftime
的秒数
forfiles /P "%userprofile%\Desktop\folder" /M "test.rar" /C "cmd /c echo sucessufull at %@ftime:~0,2%:%@ftime:~3,2%h"
尝试使用这种方式,但我认为 forfiles
不允许使用 %
。
forfiles
的特殊@
-变量,如@ftime
,与普通环境变量无关,%
-符号用于扩展他们。
有两种选择:
用
for /F
捕获forfiles
的输出:for /F "tokens=1-2 delims=:" %%I in (' forfiles /P "%UserProfile%\Desktop\Folder" /M "test.rar" /C "cmd /C if @isdir==FALSE echo @ftime" ') do ( echo successful at %%I:%%Jh )
在
内嵌套forfiles
:for /F
循环forfiles /P "%UserProfile%\Desktop\Folder" /M "test.rar" /C "cmd /C if @isdir==FALSE for /F 0x22tokens=1-2 delims=:0x22 %%I in (0x22@ftime0x22) do echo successful at %%I:%%Jh"
十六进制代码
0x22
代表引号"
并且只有forfiles
可以理解。
@ForFiles /P "%UserProfile%\Desktop\folder" /M "test.rar" /C "Cmd /V /C Set _=@FTime&Echo successful at !_:~,5!"
还有一个 complete/robust 例子:
@"%__AppDir__%forfiles.exe" /P "%UserProfile%\Desktop\folder" /M "test.rar" /C "0x22%__AppDir__%cmd.exe0x22 /V /C If @IsDir==FALSE (Set 0x22_=@FTime0x22 & Echo successful at !_:~,5!)"