当你在文件或文件夹上执行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,而不是旧版cmd
shell。
(微软承诺将来会删除旧版 shell)。
运行powershell
并使用功能:
Get-Clipboard
它将返回剪贴板的内容,同时Set-Clipboard
将执行相反的操作 - 将一些内容放入剪贴板中。
如果您不想切换到PowerShell
,您可以根据需要从批处理脚本中调用它:
powershell -Command "& {Get-Clipboard}"
在脚本中获取剪贴板的内容。
答案3
选择一个文件或文件夹,按F2
,然后使用Ctrl-C
。这样您就可以复制文件或文件夹的名称(实际上是“基本名称”)。