将文本文件重命名为内容文本(批处理)(powershell)
rename text file to the content text (batch) (powershell)
好的,正如标题所说,我需要一种重命名文本文档的方法,将其重命名为文本文档中的文本,因此如果文档中有此文本(蛋糕),则需要将文件名重命名为蛋糕.
这是一个批处理伪代码,它使用带有 vbscript 的正则表达式来读取和匹配文本文件中的第一个单词,然后如果文件不为空,脚本将重命名包含从 vbscript 中提取的变量的文本文件。
如何测试这段代码?
只需复制并粘贴下面的代码并将其另存为 Rename-First-Word-Content.bat
并在批处理的同一文件夹中创建一个名为 Test.txt
的文本文件,然后在上面写一些文字并保存。最后只需双击该批次即可查看结果!
@echo off
Set "InputFile=Test.txt"
Call :Extract "%InputFile%" NewName
If defined NewName (
echo NewName = "%NewName%"
Ren "%InputFile%" "%NewName%.txt"
)
pause & exit
::-----------------------------------------------------------------------------------
:Extract <InputFile> <Variable NewName to be Set>
(
echo WScript.StdOut.WriteLine Extract(Data^)
echo Function Extract(Data^)
echo Dim strPattern,oRegExp,Matches
echo Data = "%~1"
echo Data = WScript.StdIn.ReadAll
echo strPattern = "[^-_\/:;\x22*.?<>|]([\w\-]+)"
echo Set oRegExp = New RegExp
echo oRegExp.Global = False
echo oRegExp.IgnoreCase = True
echo oRegExp.Pattern = strPattern
echo set colMatches = oRegExp.Execute(Data^)
echo For Each Match in colMatches
echo Content = Match.Value
echo Next
echo Extract = Content
echo End Function
)>"%tmp%\%~n0.vbs"
@For /f "delims=" %%i in ('cscript //nologo "%tmp%\%~n0.vbs" ^< "%~1" 2^>nul') do Set "%2=%%i"
If Exist "%tmp%\%~n0.vbs" Del "%tmp%\%~n0.vbs"
Exit /B
::----------------------------------------------------------------------------------
好的,正如标题所说,我需要一种重命名文本文档的方法,将其重命名为文本文档中的文本,因此如果文档中有此文本(蛋糕),则需要将文件名重命名为蛋糕.
这是一个批处理伪代码,它使用带有 vbscript 的正则表达式来读取和匹配文本文件中的第一个单词,然后如果文件不为空,脚本将重命名包含从 vbscript 中提取的变量的文本文件。
如何测试这段代码?
只需复制并粘贴下面的代码并将其另存为 Rename-First-Word-Content.bat
并在批处理的同一文件夹中创建一个名为 Test.txt
的文本文件,然后在上面写一些文字并保存。最后只需双击该批次即可查看结果!
@echo off
Set "InputFile=Test.txt"
Call :Extract "%InputFile%" NewName
If defined NewName (
echo NewName = "%NewName%"
Ren "%InputFile%" "%NewName%.txt"
)
pause & exit
::-----------------------------------------------------------------------------------
:Extract <InputFile> <Variable NewName to be Set>
(
echo WScript.StdOut.WriteLine Extract(Data^)
echo Function Extract(Data^)
echo Dim strPattern,oRegExp,Matches
echo Data = "%~1"
echo Data = WScript.StdIn.ReadAll
echo strPattern = "[^-_\/:;\x22*.?<>|]([\w\-]+)"
echo Set oRegExp = New RegExp
echo oRegExp.Global = False
echo oRegExp.IgnoreCase = True
echo oRegExp.Pattern = strPattern
echo set colMatches = oRegExp.Execute(Data^)
echo For Each Match in colMatches
echo Content = Match.Value
echo Next
echo Extract = Content
echo End Function
)>"%tmp%\%~n0.vbs"
@For /f "delims=" %%i in ('cscript //nologo "%tmp%\%~n0.vbs" ^< "%~1" 2^>nul') do Set "%2=%%i"
If Exist "%tmp%\%~n0.vbs" Del "%tmp%\%~n0.vbs"
Exit /B
::----------------------------------------------------------------------------------