因此我运行这个命令:
FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"
输出:
"058-26174-078"
但问题是我想要不带引号的名字
像这样:058-26174-078
答案1
如何从 shell 中的变量中删除引号cmd
?
您需要使用~
参数扩展来for /f
执行此操作。
使用以下命令:
for /f %i in ('FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"') do @echo %~i
要设置变量,请在批处理文件中使用以下命令:
for /f %%i in ('FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"') do @set MyVariable=%%~i
笔记:
%~1
展开%1
删除所有周围的引号 (")- 在批处理文件中替换
%i
为%%i
%~i
%%~i
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 参数- 命令行参数(或参数)是传递到批处理脚本的任何值。
答案2
使用for命令,下面是一个例子:
@echo off
FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 set quote=@fname"
for %%a in (%quote%) do set dequote=%%~a
您可以使用 %dequote% 变量来获取去引号的字符串,我可能语法错误,因为我从未使用过 forfiles 命令。