如何修改“创建新文本文件”命令

问题描述 投票:0回答:1

我使用以下注册表导入作为右键单击上下文菜单条目 NewTextFileAndOpen(在记事本中)。

Right click context menu

Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Classes\Directory\shell\NewTextFileAndOpen]
@="New Text File and Open"
"Icon"=hex(2):22,00,43,00,3a,00,5c,00,74,00,6f,00,6f,00,6c,00,73,00,5c,00,5f,\
  00,49,00,43,00,4f,00,5c,00,6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,\
  69,00,63,00,6f,00,22,00,00,00

[HKEY_CURRENT_USER\Software\Classes\Directory\shell\NewTextFileAndOpen\command]
@="cmd /c cd %V & echo.>NewTextFile.txt & start NewTextFile.txt"


[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\NewTextFileAndOpen]
@="New Text File and Open"
"Icon"=hex(2):22,00,43,00,3a,00,5c,00,74,00,6f,00,6f,00,6c,00,73,00,5c,00,5f,\
  00,49,00,43,00,4f,00,5c,00,6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,\
  69,00,63,00,6f,00,22,00,00,00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\NewTextFileAndOpen\command]
@="cmd /c cd %V & echo.>NewTextFile.txt & start NewTextFile.txt"

当我再次打开记事本时,使用右键单击上下文菜单NewTextFileAndOpen,任何新编辑始终保存在

NewTextFile.txt
中。我想用另一个名称保存在文本文件中。

我请求您帮助保存新的汽车名称:

NewTextFile.txt
NewTextFile (1).txt
NewTextFile (2).txt
NewTextFile (3).txt
NewTextFile (4).txt

我尝试修改以下命令行:

@="cmd /c cd %V & echo.>NewTextFile.txt & start NewTextFile.txt"
windows cmd registry text-editor
1个回答
0
投票

在目录

NewTextFileAndOpen.cmd
或您选择的其他目录中创建一个名称为
C:\Tools
或您喜欢的其他名称的批处理文件,其中包含以下行:

@echo off
setlocal EnableExtensions DisableDelayedExpansion
if "%~1" == "" exit /B
set "NewFileName=%~1\NewTextFile.txt"
if not exist "%NewFileName%" goto CreateAndOpen
set "FileNumber=1"
:FindFreeNumber
set "NewFileName=%~1\NewTextFile (%FileNumber%).txt"
if exist "%NewFileName%" set /A "FileNumber+=1" & goto FindFreeNumber
:CreateAndOpen
echo(>"%NewFileName%"
start "" /D "%~1" "%NewFileName%"
endlocal

此批处理文件需要以文件夹路径作为第一个参数字符串启动。如果在没有任何参数字符串的情况下启动它,它不会执行任何操作并立即退出。

不会验证传递的参数字符串是否确实引用了现有目录,但可以通过在第一个 IF 条件后插入命令行来更改,以便在命令提示符窗口中安全使用批处理文件:

for %%I in ("%~1") do if not exist "%%~fI\" do echo No directory: "%~1"& pause & exit /B

名称为

NewTextFileAndOpen.reg
且存储在
C:\Tools
中的注册表文件应包含以下行:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\NewTextFileAndOpen]
@="New Text File and Open"
"Icon"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,\
  6d,00,61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,\
  00,31,00,30,00,32,00,00,00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\NewTextFileAndOpen\command]
@="C:\\Windows\\System32\\cmd.exe /D /S /C \"\"C:\\Tools\\NewTextFileAndOpen.cmd\" \"%V\"\""

[HKEY_CURRENT_USER\Software\Classes\Directory\shell\NewTextFileAndOpen]
@="New Text File and Open"
"Icon"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,\
  6d,00,61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,\
  00,31,00,30,00,32,00,00,00

[HKEY_CURRENT_USER\Software\Classes\Directory\shell\NewTextFileAndOpen\command]
@="C:\\Windows\\System32\\cmd.exe /D /S /C \"\"C:\\Tools\\NewTextFileAndOpen.cmd\" \"%V\"\""

在本例中,注册表值

Icon
的类型为
REG_EXPAND_SZ
,其值为:

%SystemRoot%\system32\imageres.dll,-102

还可以使用以下注册表文件:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\NewTextFileAndOpen]
@="New Text File and Open"
"Icon"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,\
  6d,00,61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,\
  00,31,00,30,00,32,00,00,00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\NewTextFileAndOpen\command]
@="C:\\Windows\\System32\\cmd.exe /D /S /C \"\"C:\\Tools\\NewTextFileAndOpen.cmd\" \"%V\"\""

[HKEY_CURRENT_USER\Software\Classes\Directory\shell\NewTextFileAndOpen]
@="New Text File and Open"
"Icon"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,\
  6d,00,61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,\
  00,31,00,30,00,32,00,00,00

[HKEY_CURRENT_USER\Software\Classes\Directory\shell\NewTextFileAndOpen\command]
@="C:\\Windows\\System32\\cmd.exe /D /S /C \"\"C:\\Tools\\NewTextFileAndOpen.cmd\" \"%V\"\""

类型

Icon
的注册表值
REG_EXPAND_SZ
在此注册表文件中具有以下值:

%SystemRoot%\notepad.exe,-2

或者使用以下注册表文件:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\NewTextFileAndOpen]
@="New Text File and Open"
"Icon"="\"C:\\Tools\\_ICO\\notepad.ico\""

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\NewTextFileAndOpen\command]
@="C:\\Windows\\System32\\cmd.exe /D /S /C \"\"C:\\Tools\\NewTextFileAndOpen.cmd\" \"%V\"\""

[HKEY_CURRENT_USER\Software\Classes\Directory\shell\NewTextFileAndOpen]
@="New Text File and Open"
"Icon"="\"C:\\Tools\\_ICO\\notepad.ico\""

[HKEY_CURRENT_USER\Software\Classes\Directory\shell\NewTextFileAndOpen\command]
@="C:\\Windows\\System32\\cmd.exe /D /S /C \"\"C:\\Tools\\NewTextFileAndOpen.cmd\" \"%V\"\""

注册表值

Icon
的类型为
REG_SZ
,其值为:

"C:\Tools\_ICO\notepad.ico"

如果

Windows
安装在不同的驱动器(如 cmd.exe)上,请修改
D:\Windows
的路径。最好使用完全限定的文件名
cmd.exe
而不是仅使用
cmd
。最好使用
REG_SZ
类型的注册表值,而不是
REG_EXPAND_SZ
类型的注册表值来执行命令。

可以通过执行命令行从命令提示符窗口中导入注册表文件:

reg.exe IMPORT "C:\Tools\NewTextFileAndOpen.reg"

使用此命令行导入注册表不需要本地管理员的提升权限。

导入注册表的批处理文件和命令行也设计用于以下目录:

C:\Temp\Development & Test(!) 100%
\\Server\Share\Folder\SubFolder

要了解所使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完整、仔细地阅读每个命令显示的帮助页面。

  • call /?
    ...解释
    %~1
    ...删除了周围的
    "
    的第一个参数字符串。
  • cmd /?
  • echo /?
  • endlocal /?
  • exit /?
  • goto /?
  • if /?
  • pause /?
  • set /?
  • setlocal /?
  • start /?

另请参阅:

© www.soinside.com 2019 - 2024. All rights reserved.