批次檔從檔案名稱中刪除減號

批次檔從檔案名稱中刪除減號

我正在嘗試清理特定資料夾中的一些檔案名,我想知道如何建立一個批次檔以刪除每個檔案名稱開頭的減號。

我有一堆有 -FileName.pdf 模式的文件,我想刪除前面的減號,這樣我就只有 FileName.pdf。

到目前為止,我有以下命令:

dir /B > Batch.txt
for /f "tokens=1,2" %i in (Batch.txt) DO ren "%i %j" %l

有什麼更簡單的東西可以使用嗎?

先致謝

答案1

我想刪除前面的減號

使用以下批次檔:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b -*.pdf') do (
  set _fname=%%i
  echo ren %%i !_fname:~1!
  )

筆記:

  • 這將從與表達式匹配的所有檔案名稱中刪除第一個字元-*.pdf
  • 當您確定批次檔將正確重新命名時,請將其替換echo ren為。ren

進一步閱讀

  • Windows CMD 命令列的 AZ 索引- 與 Windows cmd 行相關的所有內容的絕佳參考。
  • 目錄- 顯示檔案和子資料夾的清單。
  • 啟用延遲擴展- 延遲擴展將導致變數在執行時而不是在解析時擴展。
  • 對於 /f- 根據另一個指令的結果循環指令。
  • - 顯示、設定或刪除 CMD 環境變數。使用 SET 所做的變更將僅在目前 CMD 會話期間保留。
  • 設定本地- 設定選項來控制批次檔中環境變數的可見性。

答案2

我用免費指揮官XE它具有有用的多重命名功能,可讓您在使用模式重命名一堆文件之前預覽結果。

相關內容