首页 > 解决方案 > 如何将批处理命令输出放在 csv 文件的所需列中

问题描述

我是批处理编程的新手,我已经花了 8 个小时试图弄清楚如何解决我的问题。这就是我在这里的原因,我确定我是因为什么东西昏倒了……

我有一个命令

@ECHO OFF
echo Demarre le %date:~0,8% a %time:~0,5% >> C:\TEMP\pointage.csv

pointage.csv中放入PC 启动的日期(我们称之为A

我有另一个命令

@Echo Off&SetLocal
For /F "UseBackQ Tokens=1-4" %%A In (
    `Powershell "$OS=GWmi Win32_OperatingSystem;$UP=(Get-Date)-"^
    "($OS.ConvertToDateTime($OS.LastBootUpTime));$DO='d='+$UP.Days+"^
    "' h='+$UP.Hours+' n='+$UP.Minutes;Echo $DO"`) Do (
    Set "%%A"&Set "%%B"&Set "%%C")
Echo Temps de fonctionnement: %d% jour, %h% heures, %n% minutes >> C:\TEMP\pointage.csv
Echo Eteint le %date:~0,8% a %time:~0,5% >> C:\TEMP\pointage.csv

pointage.csv中输入 PC 关闭的日期(调用B)+启动和关机之间经过的时间(调用C

问题是 :

在我的pointage.csv中ABC位于 A1 中A、 A2 中B、 A3 中C

我想说:

在我的pointage.csv

怎么做 ?我尝试了很多东西,例如创建 3 个 files.txt 并将它们放在 A、B 和 C 中,然后尝试用于 /F 函数。但我没有找到任何有点作用的东西。

感谢您的帮助 !

标签: csvbatch-fileinputechomultiple-columns

解决方案


好的,我找到了问题,这真的很简单......

echo "hello";"stack";"overflow" >> pointage.csv

工作过

这是我的所有代码:

@echo off
setlocal
for /f %%a in ('wmic os get lastbootuptime ^| find "."') do (
  set _datetime=%%a
  )
set _boottime=%_datetime:~6,2%-%_datetime:~4,2%-%_datetime:~0,4%%_datetime:~8,2%:%_datetime:~10,2%

For /F "UseBackQ Tokens=1-4" %%A In (
    `Powershell "$OS=GWmi Win32_OperatingSystem;$UP=(Get-Date)-"^
    "($OS.ConvertToDateTime($OS.LastBootUpTime));$DO='d='+$UP.Days+"^
    "' h='+$UP.Hours+' n='+$UP.Minutes;Echo $DO"`) Do (
        Set "%%A"&Set "%%B"&Set "%%C"
)

Echo "%_boottime%";"%date:~0,8% %time:~0,5%";"%d% days, %h% hours, %n% minutes" >> C:\TEMP\pointage.csv
    
endlocal

推荐阅读