2013-08-26 31 views

回答

0

它更容易做到这一点在VBScript:

filename = "..." 

Set fso = CreateObject("Scripting.FileSystemObject") 

Set re = New RegExp 
re.Pattern = "\[AssemblyDescription="".*?""\]" 
re.IgnoreCase = True 

txt = fso.OpenTextFile(filename).ReadAll 
txt = re.Replace(txt, "[AssemblyDescription=""" & Now & """]") 
fso.OpenTextFile(filename, 2).Write txt 
1

这使用称为从repl.bat一个帮手批处理文件 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855

输入文件是"AssemblyInfo",它改写为新的数据。

"c:\backup folder"更改为您的文件位置。

@echo off 

pushd "c:\backup folder" 

for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set "dt=%%a" 
set "YYYY=%dt:~0,4%" 
set "MM=%dt:~4,2%" 
set "DD=%dt:~6,2%" 
set "HH=%dt:~8,2%" 
set "Min=%dt:~10,2%" 
set "Sec=%dt:~12,2%" 

set datestamp=%YYYY%%MM%%DD% 
set timestamp=%HH%%Min%%Sec% 
set fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec% 

type "AssemblyInfo" |repl "^(.AssemblyDescription=).*" "$1\x22%fullstamp%\x22]" mx >"AssemblyInfo.tmp" 
move "AssemblyInfo.tmp" "AssemblyInfo" >nul 
popd 
+0

这似乎是一个很好的解决方案,但我发现很难明白的地方正是我应该指定我的AssemblyInfo文件的路径。 我试图把它插入你没有tmp扩展名的状态“AssemblyInfo”,但它没有工作。 你能帮我解决吗? – user2717436

+0

请参阅上面我编辑的代码中的第二行。 – foxidrive

2

经典方式:

@ECHO OFF &SETLOCAL 
FOR /f %%a IN ('^<"file" find /c /v ""') DO SET "lines=%%a" 

SETLOCAL ENABLEDELAYEDEXPANSION 
<file (
FOR /l %%a IN (1,1,%lines%) DO (
    SET "line=" 
    SET /p "line=" 
    IF "!line:AssemblyDescription=!" neq "!line!" (
     SET "line=[AssemblyDescription="!date! !time!"]" 
    ) 
    ECHO(!line! 
))>newfile 
ENDLOCAL 
+0

这似乎是一个很好的解决方案,谢谢。但是我发现很难理解我应该在哪里指定我的AssemblyInfo文件的路径。我试图在你声明“file”和“newfile”的地方插入它,但它不起作用。你能帮我解决吗? – user2717436

相关问题