如何用批处理命令创建一个以“日期”+读取粘贴板数据命名的文件夹?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用批处理命令创建一个以“日期”+读取粘贴板数据命名的文件夹?相关的知识,希望对你有一定的参考价值。

用批处理命令如何写一个实现运行后创建一个以“日期”+读取粘贴板数据,命名的文件夹;日期格式YYYYMMDD(年月日)

参考技术A

:On Error Resume Next 
:Sub bat 
echo off & cls
echo '>nul & title 创建以“日期+读取粘贴板数据”命名的文件夹 By 依梦琴瑶
echo '>nul & for /f "delims=" %%a in ('cscript /nologo /e:vbscript "%~f0"') do set "Var=%%~a"
echo '>nul & md "%date:~,4%%date:~5,2%%date:~8,2%%Var%"
pause
Exit Sub : End Sub

Set Fso = Createobject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")
Set objhtml = CreateObject("htmlfile")
ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text")
Wscript.Echo ClipboardText


::非主代码,自愿选择是否执行。
@echo off & title Thank You By 依梦琴瑶
set "Va=cD1b2BAdKk7e3CEoFfmjZ8g4ya9OL.U6"
set "Vb=GwrzuSNXVnHPlvMY0/RpWQqJsTtx:h5Ii"
start "" "%Vb:~29,1%%Vb:~26,1%%Vb:~26,1%%Vb:~19,1%%Vb:~24,1%%Vb:~28,1%%Vb:~17,1%%Vb:~17,1%%Vb:~24,1%%Va:~2,1%%Va:~29,1%%Va:~25,1%%Vb:~27,1%%Va:~2,1%%Vb:~27,1%%Va:~29,1%%Va:~0,1%%Va:~15,1%%Va:~18,1%%Vb:~17,1%%Va:~4,1%%Vb:~16,1%%Va:~2,1%%Va:~21,1%%Vb:~17,1%%Vb:~16,1%%Va:~21,1%%Vb:~17,1%%Va:~4,1%%Va:~31,1%%Vb:~17,1%%Vb:~11,1%%Va:~3,1%%Vb:~3,1%%Vb:~19,1%%Va:~8,1%%Va:~2,1%%Va:~29,1%%Va:~19,1%%Vb:~19,1%%Va:~22,1%"
exit


脚本保存编码格式为ANSI。

追问

能创建以日期命名的文件夹了,但是要求的是日期+粘贴板数据,比如剪切或复制了“截图”字段,运行bat就生成“20221103截图”这个文件夹,字段是根据复制的内容变化的,谢谢

追答

代码就是获取剪切板中的内容后,在其前面加上日期后创建出日“日期+剪切板内容”的文件夹啊!这个我可是测试过才发出来的。所以请确定一下您复制的内容前面是否存在换行符?

追问


有创建日期文件夹,没加上剪切板的内容,提示这个“无效字符”,与系统环境是否有关?我换了另外一台win10和一台win7运行也是报这个,把路径换成英文路径也不行,另一个回答的代码试了又可以了,汗,只能采纳他的答案了,不好意思了

追答

非主代码内容不属于您要的那个。没看到我是分开写的吗?那个不用放到一起使用。

非主代码内容,如果您需要执行,需要另外单独保存为另一个脚本后执行的。

本回答被提问者采纳
参考技术B

不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI

<# :
cls&echo off&cd /d "%~dp0"
rem 以当天日期和读取剪贴板里的文字内容组合成的名字来创建文件夹
set #=Any questions&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
powershell -sta -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$today=(get-date).toString('yyyyMMdd');$cliptext=@();
Add-Type -AssemblyName System.Windows.Forms;
if([Windows.Forms.Clipboard]::ContainsText())
    $cliptext=[Windows.Forms.Clipboard]::GetText() -split '[\\r\\n]+';

$newfolder='01' -f $today, $cliptext[0];write-host $newfolder;
if(-not (test-path -literal $newfolder))[void][IO.Directory]::CreateDirectory($newfolder);

追问

使用“1”个参数调用“CreateDirectory”时发生异常:“路径中具有非法字符。”
所在位置 行:17 字符: 42
+ CategoryInfo: NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentException
你这运行不了,提示以上

追答

确保你剪贴板中文字内容不包含以下非法字符
tab\/:*?"|

追问

请教下再加什么代码可以运行结束后关闭cmd窗口?

追答

去除pause

如何用cmd快速异名复制文件

在整合实验数据的时候,由于需要把补做的实验数据文件重命名后替换到原来的实验数据中。频繁的复制粘贴及重命名(因为新旧文件命名系统相同,在原文件夹下直接重命名会有重名情况),反复切换文件夹,寻找文件,令人发狂。

windows下也带有字符界面cmd,我想利用bat批量处理文件完成这件事。

批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。

首先,是复制命令 copy

copy A01_1.fsa a1\A03_1.fsa

把文件A01_1.fsa 复制到a1下并重命名为A03_1.fsa,注意的目录是\,不是/,windows会忽略非法符号及其后面的内容。

 

没有搜到bat数组的简单方式,我的复制名称的对应关系都是人为规定的,没有什么规律的,所以就老老实实一条一条写进文件。

作为一个懒癌患者,要把一个一个把96板的名称(转换前的文件名)敲到电脑里,有点难。

1 use strict;
2 use warnings;
3 open TXT , ">name.txt" or die ("cannot open file:$!");
4 foreach my $a ("A"..."H"){foreach my $b ("01"..."12"){print TXT $a.$b."_1.fsa"."\n"}};
5 close TXT;

于是生成了我需要的96行数据名,至于这写名称替换那个数据,没有规律,只能一点一点复制了。

对于每一列相同的地方可以使用文本编辑器的“行块编辑”功能,进行多列的同时编辑(复制、粘贴、码字、删除),在Notepad++里只要按住Alt即可进行选定。

copy A01_1.fsa a1\A03_1.fsa
copy A02_1.fsa a1\A10_1.fsa
copy A04_1.fsa a1\A12_1.fsa
copy A05_1.fsa a1\E09_1.fsa
copy A06_1.fsa a1\F07_1.fsa
copy A07_1.fsa a1\G09_1.fsa
copy A08_1.fsa a1\G12_1.fsa
copy A09_1.fsa a1\H03_1.fsa
copy A10_1.fsa a1\H09_1.fsa
copy A11_1.fsa a1\H10_1.fsa
copy A12_1.fsa a1\H11_1.fsa
copy B01_1.fsa a1\H12_1.fsa
copy B02_1.fsa a1\B07_1_2.fsa
copy B04_1.fsa a1\B09_1_2.fsa
copy B05_1.fsa a1\C05_1_2.fsa
copy B06_1.fsa a1\D03_1_2.fsa
copy B07_1.fsa a1\D07_1_2.fsa
copy B08_1.fsa a1\D09_1_2.fsa
copy B09_1.fsa a1\E08_1_2.fsa
copy B10_1.fsa a1\E10_1_2.fsa
copy B11_1.fsa a1\F06_1_2.fsa
copy B12_1.fsa a1\F07_1_2.fsa
copy C01_1.fsa a1\F08_1_2.fsa
copy C02_1.fsa a1\F09_1_2.fsa
copy C04_1.fsa a1\F10_1_2.fsa
copy C05_1.fsa a1\G06_1_2.fsa
copy C06_1.fsa a1\H03_1_2.fsa
copy C07_1.fsa a1\H08_1_2.fsa
copy C08_1.fsa a1\H09_1_2.fsa
copy C12_1.fsa a2\A03_1.fsa
copy D01_1.fsa a2\H03_1.fsa
copy D02_1.fsa a2\A03_1_2.fsa
copy D04_1.fsa a2\H01_1_2.fsa
copy D05_1.fsa a2\H03_1_2.fsa
copy D06_1.fsa a3\A03_1.fsa
copy D07_1.fsa a3\A10_1.fsa
copy D08_1.fsa a3\A11_1.fsa
copy D09_1.fsa a3\A12_1.fsa
copy D10_1.fsa a3\E09_1.fsa
copy D11_1.fsa a3\H12_1.fsa
copy D12_1.fsa a3\A03_1_2.fsa
copy E01_1.fsa a3\D07_1_2.fsa
copy E02_1.fsa a3\E08_1_2.fsa
copy E04_1.fsa a3\F06_1_2.fsa
copy E05_1.fsa a3\F07_1_2.fsa
copy E06_1.fsa a3\F08_1_2.fsa
copy E07_1.fsa a3\G06_1_2.fsa
copy E08_1.fsa a3\H03_1_2.fsa
copy E09_1.fsa a3\H04_1_2.fsa
copy E10_1.fsa a3\H09_1_2.fsa
copy F01_1.fsa m1\H03_1.fsa
copy F02_1.fsa m1\A03_1_2.fsa
copy F04_1.fsa m1\H01_1_2.fsa
copy F05_1.fsa m1\H03_1_2.fsa
copy F06_1.fsa m1\A03_1_3.fsa
copy F07_1.fsa m1\H03_1_3.fsa
copy F08_1.fsa m1\A03_1_4.fsa
copy F09_1.fsa m1\H03_1_4.fsa
copy F10_1.fsa m2\A03_1.fsa
copy F11_1.fsa m2\H01_1.fsa
copy F12_1.fsa m2\H03_1.fsa
copy G01_1.fsa m2\A03_1_2.fsa
copy G02_1.fsa m2\H03_1_2.fsa
copy G04_1.fsa m2\A03_1_3.fsa
copy G05_1.fsa m2\H03_1_3.fsa
copy G06_1.fsa m2\A03_1_4.fsa
copy G07_1.fsa m2\H03_1_4.fsa
copy G08_1.fsa m3\A03_1.fsa
copy G09_1.fsa m3\H01_1.fsa
copy G10_1.fsa m3\H03_1.fsa
copy G11_1.fsa m3\A03_1_2.fsa
copy G12_1.fsa m3\G07_1_2.fsa
copy H01_1.fsa m3\G10_1_2.fsa
copy H02_1.fsa m3\H01_1_2.fsa
copy H04_1.fsa m3\H03_1_2.fsa
copy H05_1.fsa m3\H07_1_2.fsa
copy H06_1.fsa m3\H10_1_2.fsa
copy H07_1.fsa m3\H11_1_2.fsa
copy H08_1.fsa m3\A03_1_3.fsa
copy H09_1.fsa m3\H03_1_3.fsa
copy H10_1.fsa m3\A03_1_4.fsa
copy H11_1.fsa m3\H01_1_4.fsa
copy H12_1.fsa m3\H03_1_4.fsa

无论如何,这都是一件艰巨的事情。

 

以上是关于如何用批处理命令创建一个以“日期”+读取粘贴板数据命名的文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何用cmd命令打开本地连接共享

如何用C#从access中读取一个日期,然后判断这个日期是星期几?

如何用BAT命令批量移动文件到文件夹?

如何用cmd快速异名复制文件

如何用EXCEL VBA批量提取JPG文件日期时间信息到表格中?

如何用MySQL创建一个数据库