【问题标题】:Batch file with time issue before 10 AM上午 10 点前有时间问题的批处理文件
【发布时间】:2014-08-15 22:21:36
【问题描述】:

我创建了一个批处理脚本来获取文件,将其复制到以日期和时间作为文件夹名称的文件夹中,然后根据日期和时间重命名文件。我的问题是,在上午 10 点之前的任何时间,命令都会失败:

c:\ICVERIFY\ICWin420\DATADIR>md C:\SettlementReports\Settlement_Reports\DATADIR\
06-25-2014_ 709_08.24.txt
A subdirectory or file C:\SettlementReports\Settlement_Reports\DATADIR\06-25-201
4_ already exists.
Error occurred while processing: C:\SettlementReports\Settlement_Reports\DATADIR
\06-25-2014_.

这是我的批处理文件,我在它出错之前设置了一个超时时间。

cd c:\
cd icverify
cd icwin420
cd DATADIR
:: this is Regional settings dependent so tweak this according your current settings
Echo %DATE% %Time%
Set TDate=%date:~10,4%%date:~4,2%%date:~7,2% FOR %%V IN (%1) DO Rename %%V %%V%TDate%
md C:\SettlementReports\Settlement_Reports\DATADIR\%date:~4,2%-%date:~7,2%-%date:~10,4%_%time:~0,2%%time:~3,2%_%time:~6,5%.txt
timeout /T 1
copy ICRPT*.txt C:\SettlementReports\Settlement_Reports\DATADIR\%date:~4,2%-%date:~7,2%-%date:~10,4%_%time:~0,2%%time:~3,2%_%time:~6,5%.txt
cd c:\
cd Settlementreports
cd settlement_reports
cd datadir
cd %date:~4,2%-%date:~7,2%-%date:~10,4%_%time:~0,2%%time:~3,2%_%time:~6,5%.txt
ren ICRPT*.TXT ICRPT_%date:~4,2%-%date:~7,2%-%date:~10,4%_%time:~0,2%%time:~3,2%_%time:~6,5%.txt

非常感谢任何帮助。

【问题讨论】:

    标签: windows datetime batch-file file-rename renaming


    【解决方案1】:

    您的%time% 变量包含一个空格而不是初始0 左边填充小时数小于10:00。你可以使用

    set "$time=%time: =0%"
    

    0 替换空格,将结果值存储在新变量中。然后将%time%的引用替换为新变量%$time%

    md C:\ ....... \%date: ... %_%$time:~0,2%%$time:~3,2%_%$time:~6,5%.txt
    

    或者,如果您的文件名中的空格不是问题,请引用所有文件引用以避免错误

    md "C:\Settlem .... _%time:~6,5%.txt"
    

    对于这两个选项中的任何一个,请更改引用文件/文件夹的文件中的所有命令

    【讨论】:

      【解决方案2】:

      0 替换空格(参见 MC ND 的回答)是一种可能性。

      但您应该习惯将任何<path>\file.ext 放入双引号中。

      copy file.txt new path\file with spaces.txt
      

      被解释为copy file.txtnew,还有额外的参数path\filewithspaces.txt,这些不是预期的。

      这种语法效果更好:

      copy "file.txt" "new path\file with spaces.txt"
      

      这里只有两个参数,每个参数都用双引号括起来。

      【讨论】:

        猜你喜欢
        • 2018-12-07
        • 1970-01-01
        • 2017-05-02
        • 1970-01-01
        • 2010-10-03
        • 1970-01-01
        • 2015-09-12
        • 1970-01-01
        • 2014-01-15
        相关资源
        最近更新 更多