1

私はwin 7プラットフォームを使用しています。私の仕事を簡素化するbatファイルを作成するためにあなたの助けが必要です. 私のフォルダとファイルはこの構造で配置されています。

ファイル1

  • フォルダ1 ->abcd.pdf
  • folder2 ->shhd.pdf................................. folderN ->gfdfgd.pdf

ファイル2

  • フォルダ1 ->gbg.pdf
  • folder2 ->kjc67z.pdf................................. folderN ->iuxz4i.pdf

--

--

--

ファイルN

  • フォルダ1 ->ah455.pdf
  • folder2 ->jfhd45.pdf................................. folderN ->juvxzr.pdf

PDFファイルの名前を、含まれるフォルダーの名前に変更するバッチファイルを生成したいと考えています。たとえば、上記の構造で「abcd.pdf」は、folder1.pdf に名前が変更されます。それぞれ、これはすべてのpdfファイルに対して行われます。

また、「test」という名前のフォルダーが各ディレクトリ (file1、file2..etc) 内に作成され、それぞれのディレクトリの名前が変更されたすべての pdf ファイルが含まれます。

File1内のすべてのフォルダーをMyfolderにコピーしてbatファイルを実行すると、testという名前のフォルダーが作成され、すべてのpdfファイルの名前が変更されてtestフォルダーにコピーされます。

しかし、私が欲しいのは、H:\ドライブでbatファイルを実行したいということです。上記の構造で示したように、H:\ ドライブにすべてのディレクトリ File1、File2....FileN が含まれ、各ディレクトリにサブディレクトリが含まれていると仮定します。H:\ ドライブでバッチ ファイルを実行すると、それぞれのサブディレクトリの名前が変更された pdf ファイルを含む各ディレクトリ内に、testという名前のフォルダーを作成する必要があります。

4

1 に答える 1

2
@ECHO OFF &SETLOCAL
for /F "delims=" %%a in ('dir /b /s /a-d *.pdf') do (
     set "fname=%%~fa"
     for %%b in ("%%~dpa.") do set "nname=%%~nxb"
     setlocal enabledelayedexpansion
     ECHO ren "!fname!" "!nname!.pdf"
     endlocal
)

注: 名前を変更できるのは、1 つの pdf/フォルダーのみです。


OPの他のコード:

@ECHO OFF &SETLOCAL
MKDIR "H:\Myfolder\test"
for /f "delims=" %%i in ('DIR /b /a-d "H:\Myfolder"') do (
    ECHO %%i
    CD "H:\Myfolder\%%~i"
    ren *.pdf "%%~nxi.pdf"
    copy *.pdf "H:\Myfolder\test"
    cd H:\Myfolder
)
cd H:\Myfolder\test
del H:\Myfolder\test\test.pdf 
于 2013-08-10T20:21:36.000 に答える