使用剪贴板中的名称在当前目录中创建新文件夹的批处理文件

时间:2014-07-06 21:56:25

标签: batch-file directory clipboard

我目前正在下载大量单独分组的文件。每个组都有自己的名称。

目前这就是我正在做的事情,

  1. 突出显示文本以复制主题名称。
  2. 右键点击我所在的目录并创建新文件夹。
  3. 粘贴以命名新文件夹。
  4. 我想要做的是创建一个执行此操作的批处理文件,然后我将它添加到我的资源管理器上下文窗口中,并为批处理文件创建键盘快捷方式。

    就像主题说我想:

    创建一个批处理文件,该文件将在我正在使用的当前目录中创建一个新文件夹。该文件夹的名称应该来自剪贴板。

    这对我来说很新,但我现在明白了

    mkdir表示新文件夹 我相信%clipboard%用于剪贴板 和当前目录的%cd%

2 个答案:

答案 0 :(得分:0)

有第三方免费工具可以读取剪贴板 - 但浏览器窗口中的当前目录并未通过我所知的任何方式公开 - 这意味着您无法以编程方式创建文件夹您正在浏览器窗口中操作它。

然而,您可以使用免费autohotkey按键,单击并复制到剪贴板,从简单的热键粘贴等。

答案 1 :(得分:0)

对于上下文菜单集成,可能superuser.com是一个更好的地方

从剪贴板创建文件夹

@echo off
    setlocal enableextensions disabledelayedexpansion

    :: Where to create the folder should come from contextual menu as parameter
    if "%~1"=="" exit /b 1
    if not exist "%~1" exit /b 1

    :: 1 retrieve name from clipboard (if the clipboard contains text)
    :: 2 ensure the target folder path ends with a backslash
    :: 3 create the folder

    for /f "usebackq delims=" %%a in (
        `mshta "javascript:var data;try{data=window.clipboardData.getData('Text');}catch(e){};new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(data?data:'');close();"`
    ) do for /d %%b in ("%~f1\") do (
        if not exist "%%~fb%%a" (
            md "%%~fb%%a"
        ) else (
            echo(%%~fb%%a exists
            pause
        )
    )

这使用mshta.exe(这是Windows的一部分)使用javascript代码从剪贴板检索数据。