在文件/文件夹上按 CTRL+C,如何批量获取文件名?(从批处理中读取剪贴板文件名)

在文件/文件夹上按 CTRL+C,如何批量获取文件名?(从批处理中读取剪贴板文件名)

当你在文件或文件夹上执行Copy( CTRL+ ) 时,C在一些程序中,但不是全部(例如:它在 Windows 资源管理器地址栏中有效,也适用于 Everything 索引软件),当执行粘贴(CTRL+ V)时,文件名或目录名像文本一样粘贴,如下所示:"D:\Test\Temp"

问题:如果您在 Windows 资源管理器中对文件或文件夹执行CTRL+ ,如何在随后运行的批处理文件中获取其文件名?Ctest.bat

我尝试使用 clip.exe,按照建议在 Windows 批处理文件中访问剪贴板 ,但它不起作用:clip.exe 似乎做了相反的事情(写入剪贴板)。


注意:不同于如何将文件路径复制到剪贴板?(它的答案需要第三方软件,或不同的热键解决方案,或使用 AutoHotkey),在这里我明确寻找一个批量工作的解决方案,使用标准 CTRL+C(而不是其他热键,不使用 AutoHotkey 等)并且不需要第三方软件。

答案1

您可以通过将该文件从资源管理器拖到命令窗口来获取完整路径名,这将插入完整路径。

程序可以将不同类型的内容放入剪贴板。例如,Word 可以将文本作为纯文本和格式化文本放入剪贴板。有些程序很聪明,当你将文件(引用)放入剪贴板时,它们会提取文件名。不幸的是,命令窗口没有这个功能。

答案2

在所有受支持的 Windows 版本上使用powershell现有的 shell,而不是旧版cmdshell。
(微软承诺将来会删除旧版 shell)。

运行powershell并使用功能:

Get-Clipboard

它将返回剪贴板的内容,同时Set-Clipboard将执行相反的操作 - 将一些内容放入剪贴板中。

如果您不想切换到PowerShell,您可以根据需要从批处理脚本中调用它:

 powershell -Command "& {Get-Clipboard}"

在脚本中获取剪贴板的内容。

答案3

选择一个文件或文件夹,按F2,然后使用Ctrl-C。这样您就可以复制文件或文件夹的名称(实际上是“基本名称”)。

答案4

您可以Shift+Right click在资源管理器中的文件上选择“复制为路径”: 在此处输入图片描述

或者如果您选择文件名,并使用Ctrl+Shift+C

这将告诉 Explorer 以 CF_TEXT 格式(而不是通常的 CF_HDROP 格式)将信息复制到剪贴板。有些程序不知道如何处理 CF_HDROP 格式,但所有程序都应该理解 CF_TEXT 格式。

相关内容