如何制作编辑文本文件的批处理文件

时间:2014-01-15 13:15:25

标签: batch-file

我有一个正在查看我的用户个人资料名称的程序的文本文件。 路径的其余部分是相同的。

我可以使用批量更改用户名吗?

示例:

C:\用户\ USER1 \图片\背景

如果我正在使用来自不同电脑的程序,我有办法更改文件路径。

如果我运行批处理文件,它会在此路径中显示C:\ Users \ user2 \ Pictures \ background?

1 个答案:

答案 0 :(得分:1)

是的,不要对绝对路径进行硬编码并使用USERPROFILEHOMEPATH环境变量:它们包含当前用户主目录的路径(文档和设置的基本路径可能已本地化,并且会在Windows版本。)

%USERPROFILE%Pictures\background

那说如果它只是一个管理任务,那么你可以使用一个简单的VBScript文件进行搜索&替换(请注意它未经测试):

' Note we're reading backup copy (see batch file)
configurationFilePath = "c:\app\config.bak"

' Change this to proper value. Is it a hard-coded generic path?
textToFind = "C:\Users\user1\Pictures\background"

' From VBScript we're able to resolve MyPictures folder directly
Set so = Wscript.CreateObject("Wscript.Shell")
textToReplace = objShell.SpecialFolders("MyPictures") & "\background"

' Loop through all lines of input file, output each line
' and replace old path with new one
Set fso = CreateObject("Scripting.FileSystemObject")
Set inputStream = fso.OpenTextFile(configurationFilePath)
Do Until inputStream.AtEndOfStream
    text = inputStream.ReadLine
    If InStr(text, textToFind)> 0 Then
        text = Replace(text, textToFind, textToReplace)
    End If 

    WScript.Echo text 
Loop

从批处理文件调用的所有内容,首先创建配置的副本:

ren c:\app\config.text c:\app\config.bak

然后调用此脚本并将其输出重定向到(重新)创建包含替换文本的配置文件:

cscript updateconfig.vbs > c:\app\config.txt

最后注意事项:请注意,您的程序可能甚至支持在其配置文件中指定的路径中的环境变量扩展。在你写任何其他内容之前先试试。