首页 > 解决方案 > 如何使用批处理脚本创建没有文件类型扩展名的文件夹名称并移入创建的子目录?

问题描述

帮帮我先生,我尝试了 100 多次,但它并不完全适合我。

目前以错误的方式获得结果:-
给出下面的批处理脚本,从此文件(7101-1- kutana.pdf)名称创建文件夹,扩展名为 .pdf,但不完全是我需要的。

结果我需要以正确的方式a / q给出以下步骤

例如
第 1 步:-我想从文件名(7101-1- kutana)中删除第一个五个字符,
并且我想从文件夹名称中删除扩展名。
Sourcedir=e:\automovesystem\temp
A. source pdf 文件名:- 7101-1- kutana.pdf

第 2 步:-在destdir名称
下创建目录1-(space)kutana授予 B. destdir=e:\automovesystem\ prpl 已 创建目录e:\automovesystem\prpl\1- kutana\award Step3.根据步骤 1 文件名检查文件夹名称是否可用。



第 4 步: - 将相同的文件移动到在第 2 步中创建的子目录下的同一文件夹中。

@echo off setlocal enableextensions disabledelayedexpansion 
Set "sourcedir=e:\automovesystem\temp" 
Set "destdir=e:\automovesystem\prpl"
For /f "eol=| tokens=1* delims=-" %%a in ('dir /b /a-d-h "%sourcedir%\*-*" 2^>nul') do ( 
Md "%destdir%\%%b\award" 2>nul 
Move /y "%sourcedir%\%%a-%%b" "%destdir%\%%b\award" )
Endlocal

标签: windowsbatch-file

解决方案


除了您自己的答案之外,我可能会更像这样:

@Echo Off
SetLocal EnableExtensions

Set "SRC=E:\automovesystem\TEMP"
Set "DST=E:\automovesystem\PRPL"

If Not Exist "%SRC%\" (Exit /B) Else If Not Exist "%DST%\" Exit /B

For /F "Delims=" %%G In ('%SystemRoot%\System32\where.exe "%SRC%":"????-?*-?*.*"
 2^>NUL') Do For /F "Tokens=1,* Delims=-" %%H In ("%%~nG"
) Do %SystemRoot%\System32\Robocopy.exe "%%~dpG." "%DST%\%%I\NOTICE" "%%~nxG"^
 /Mov 1>NUL 2>&1

推荐阅读