首页 > 解决方案 > 将引号中的变量写入输出文件

问题描述

(for %%f in (%zipfiles%) do (
  <nul set /p ="%%f",
  certutil -hashfile "%%f" SHA256|find /v ":" || echo empty file
))> "C:\Location\Report\ListOfFiles.csv"

"%%f" 不起作用,%%"f" 和 "/p =%%f" 都不起作用,

我想要的是引号中的文件名:

"Filename 001.zip",68b17a9d0d98dd64f3c6c5b29e5cd304a6397d21f24e3087723ccad9f6f77c58

标签: batch-file

解决方案


@ECHO OFF
SETLOCAL EnableExtensions
set "zipfiles=*.zip"
(for %%f in (%zipfiles%) do (
  <nul set /p =""%%f","
  certutil -hashfile "%%f" SHA256|find /v ":" || echo empty file
))>".\ListOfFiles.csv"

在这里<nul set /p =""%%f","

  • 外部双引号用于转义逗号以及内部双引号,以便
  • 内部双引号和逗号被复制到输出流。

推荐阅读