gpt4 book ai didi

windows - 使用 powershell 和 cmd 创建带有定义的 .h 文件

转载 作者:可可西里 更新时间:2023-11-01 11:57:55 27 4
gpt4 key购买 nike

我是 powerShell 和 cmd 的新手,抱歉。我正在尝试编写可以生成这样定义的脚本

#define VERSION "a89aa153a054b865c0ef0a6eddf3dfd578eee9d2"

在版本中我想从下一个源设置参数

.git\refs\heads\project

我尝试了下一个 cmd 脚本,但是我遇到了 "字符的问题,我无法逃脱它

echo #define VERSION \" > ver.h
type .git\refs\heads\project >> ver.h
echo \" >> ver.h

我还尝试使用该帖子中的脚本 http://blogs.technet.com/b/heyscriptingguy/archive/2008/04/29/how-can-i-read-a-text-file-and-extract-all-the-text-enclosed-in-double-quote-marks.aspx

但是我在尝试运行它时遇到了问题。我创建了文件 writeDefine.ps1

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("D:\Scripts\DefineTemplate.txt", ForReading)

Do Until objFile.AtEndOfStream
strText = ""
strCharacter = objFile.Read(1)
If strCharacter = Chr(34) Then
Do Until objFile.AtEndOfStream
strNewCharacter = objFile.Read(1)
If strNewCharacter = Chr(34) Then
Exit Do
End If
If strNewCharacter <> "" Then
strText = strText & strNewCharacter
End If
Loop
Wscript.Echo strText
End If
Loop

objFile.Close

我想读取模板并在 "字符之间插入 VERSION 并将该文本写入 "ver.h",但是我有一个错误

D:\writeHeader.ps1:4 symbol:67
+ Set objFile = objFSO.OpenTextFile("D:\Scripts\DefineTemplate.txt", <<<< ForReading)
+ CategoryInfo : ParserError: (,:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingExpressionAfterToken

定义模板.txt

#define VERSION ""

请帮帮我。谢谢!

最佳答案

脚本示例是 VBScript,不是 Powershell。因此,您不能在 Powershell 上执行它。但是,您可以通过调用 cscript 来执行它。还有执行 VBScript 的 wscript,但它用于图形: pop 窗口等。将文件重命名为 .vbs 并运行它。像这样,

cscript d:\writeHeader.vbs

Cmd.exe 使用帽子字符作为转义符。像这样,

C:\temp>echo #define VERSION ^" > ver.h
C:\temp>type ver.h
#define VERSION "

编辑:根据如何在单行上创建标题,必须调用一些技巧。这在 Powershell 中会简单得多,但这里是。

:: Assume git data is in git.dat and it doesn't contain a newline
echo ^"> quote.txt
<nul set /p d=#define VERSION ^"> ver.h
copy /y ver.h+git.dat+quote.txt ver2.h
type ver2.h
#define VERSION "0x000..."

...但我仍然会在 Powershell 中执行此操作。像这样,

$git = cat .git\refs\heads\project # Read the git project file
$str = $("#define VERSION `"{0}`"" -f $git) # Build a formatted string
set-content -LiteralPath ver.h -value $str # Write the string to a file

关于windows - 使用 powershell 和 cmd 创建带有定义的 .h 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13449117/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com