【问题标题】:Batch command to remove " in file批处理命令删除文件中的“
【发布时间】:2021-07-17 22:39:47
【问题描述】:

我对创建 bat 文件非常陌生。我正在尝试从驱动器中删除旧文件 - 暂停以从软件中运行新文件,然后从我的 csv 文件中删除第一行并从整个文件中删除 "。

这是我到目前为止所写的,但无法将 " 删除。

@echo off
DEL C:\users\thutchinson\downloads\APDD*.*
start "" /wait cmd /c "echo Run the Dayforce Report!&echo(&pause"
@echo off

RENAME C:\Users\thutchinson\Downloads\APDD*.csv APDD1.txt
@echo off
more /E +1 C:\Users\thutchinson\Downloads\APDD1.txt >C:\Users\thutchinson\Downloads\APDD2.txt
set Sting

msg * Done!
exit >nul

【问题讨论】:

  • 我没有看到任何甚至远程尝试从文件中删除引号的代码。没有代码时很难帮助您解决代码问题。

标签: batch-file


【解决方案1】:

我认为您正在尝试用 more 命令替换文件内容,所以我想在这里为您提供帮助。

披露,此脚本结果将完全取决于您的csv 文件的内容。如果有!<>等字符。这将无法正常工作。

所以在开始之前,我还要解释一下,我假设(基于您的示例重命名命令)您正在尝试对文件夹中的每个 .csv 文件执行此操作,如果没有,请查看代码,因为这将按照您的要求替换内容。

@echo off
setlocal enabledelayedexpansion & mkdir "%temp%\bckcsv"
for %%i in (*.csv) do (
    copy "%%~i" "%temp%\bckcsv"
    set "file=%%~i"
    for /f "skip=1tokens=*" %%f in ('type "!file!" ^| find /v /n "" ^& break ^> "!file!"') do (
         set "line=%%f"
         set "line=!line:*]=!"
         set "line=!line:"=!
         echo(!line! >>"!file!"
   )
)

同样,不要在您计划运行它的目录中运行它。将一些文件复制到测试目录,在该目录上运行批处理并确保结果与您预期的一样,然后再运行它你的实际文件。但是,如果您在尝试之前没有阅读此内容并且您设法破坏了您的 csv 文件,请不要太担心,此代码已在 %temp% 中为您备份

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
相关资源
最近更新 更多