批处理文件以获取计算机名称并在其中插入字符

时间:2015-12-03 21:52:44

标签: batch-file command-line

我将不得不在这里更改50台计算机的名称,并希望制作批处理文件以使其更容易。计算机名称格式如下: CMS-(RM#) - (TAG#),例如CMS-311-003784

我需要在房间号码前插入一个T(CMS-T311-003784)。到目前为止,我已经更改了名称,但我必须在名称中输入NEWPCNAME。

我想知道是否有办法告诉它复制当前名称,但在当前名称的第四个字符后面插入T.

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v ComputerName /t REG_SZ /d NEWPCNAME /f

2 个答案:

答案 0 :(得分:2)

您可以获得这样的计算机名称,将尝试找出在正确位置插入字符的方法,并在我弄清楚时编辑它。

// Creating library
public static ArrayList<Library> createLibrary(){
    // Variables holding the information
    int[] ID = {1};
    String[] name = {"Draperstown"};
    String[] address = {"Magherafelt Road, Draperstown"};
    String[] phone = {"028 796 27436"};

    // temp variables
    int newID = -1;
    String newName = null;
    String newAdd = null;
    String newPhone = null;

    ArrayList<Library> library = new ArrayList<Library>();
    for(int i = 0; i < 1; i++){
        // setting temp values to equal existing variables
        newID = ID[i];
        newName = name[i];
        newAdd = address[i];
        newPhone = phone[i];

        // Adding a new library with the books
        library.add(new Library(newID, newName, newAdd, newPhone, generateBooks()));
    } 
    // returns the library array list
    return library;
} 

修改

这比我更容易,这会从名称中获取子串并在位置4上添加T

答案 1 :(得分:1)

@echo off
if "%computername:~4,1%" neq "T" (
 echo REG DELETE HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v ComputerName
 echo REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v ComputerName /t REG_SZ /d %computername:~0,4%T%computername:~4% /f
 set "computername=%computername:~0,4%T%computername:~4%"

)
echo Name changed to %computername%
pause
exit

请注意,所需的"REG"命令为echo - 删除要激活的echo关键字。

请注意,原始条目很可能需要删除。

(未经测试) - 在激活前验证。