删除 Forfiles 输出 {cmd} 中的引号

Hac*_*ude 5 windows command-line cmd.exe

所以我正在运行这个命令:

FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"
Run Code Online (Sandbox Code Playgroud)

和输出:

"058-26174-078"

但问题是我想要没有引号的名字

像这样: 058-26174-078

Dav*_*ill 4

如何从cmdshell 中的变量中删除引号?

您需要使用~参数扩展来for /f执行此操作。

使用以下命令:

for /f %i in ('FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"') do @echo %~i
Run Code Online (Sandbox Code Playgroud)

要设置变量,请在批处理文件中使用以下命令:

for /f %%i in ('FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"') do @set MyVariable=%%~i
Run Code Online (Sandbox Code Playgroud)

笔记:

  • %~1展开%1删除所有周围的引号 (")
  • 在批处理文件中替换%i%%i%~i%%~i

进一步阅读