簡體   English   中英

“ C:\\ Users \\ root \\ Desktop \\ %% I”將變量文件夾添加到命令

[英]“C:\Users\root\Desktop\%%I” add variable folders to command

我有一個使用FrameShots軟件創建的簡單可以從多個視頻文件中抓取圖像。

FOR /F %%I IN ('dir *.mp4 *.mkv /b /s') DO "C:\Program Files (x86)\FrameShots\frameshots.exe" -count 10 -filetype .jpeg "C:\Users\me\Videos\%%I" "C:\Users\me\Images"

它的偉大工程,以從每個視頻文件我在我的視頻文件夾搶的圖像,但我不能得到它來訪問視頻的子文件夾中的視頻文件夾(這是我的想法/s應達到)。

我希望將/s放在命令中將迫使FrameShots不僅檢查“視頻”文件夾中的視頻文件,而且還檢查“視頻”文件夾中其他文件夾中的視頻(即,度假文件夾,工作文件夾,兒童文件夾...)但是我錯了。

這是一個非常基本的蝙蝠文件:

FOR /F %%I IN ('dir *.mp4 *.mkv /b /s') DO "C:\Program Files (x86)\FrameShots\frameshots.exe" -count 10 -filetype .jpeg "C:\Users\me\Videos\%%I" "C:\Users\me\Images"

我原本希望從“視頻”文件夾中的每個視頻(包括子文件夾)中獲取10個jpeg圖像,但是我目前僅從不在子文件夾中的mp4 / mkv文件中獲取圖像,但是我希望從每個mp4 /中獲取圖像“視頻”文件夾中的mkv文件,包括所有子文件夾。

看看這是否對您有用:

FOR /F "Tokens=*" %%I IN ('dir "%UserProfile%\*.mp4" "%UserProfile%\*.mkv" /b /s') DO "%ProgramFiles(x86)%\FrameShots\frameshots.exe" -count 10 -filetype .jpeg "%%I" "%USERPROFILE%\Images"

DIR與/ S一起使用將遞歸子目錄,但輸出將是匹配文件的完整路徑,而不是相對路徑或文件名。

因此,我們可以忽略您已在其中填充某些文件路徑的部分。

此外,由於我知道您想在用戶配置文件下進行搜索,因此我更改為使用Windows變量,並使用它明確地確保搜索在正確的位置進行,並且我也將其用於輸出以確保所有照片都在您的圖像文件夾中生成。

因此,此程序現在可以在安裝了該程序的任何人的計算機上運行,​​而不僅僅是您的專用程序。 :)

如果要遍歷目錄中的所有文件(包括子文件夾) for /r則可以采用以下方法:

@echo off

set "dir=C:\Your\Video\Directory"
set "frame=C:\Program Files (x86)\FrameShots"
set "me=C:\Users\me"

for /r "%dir%" %%A in (*.mp4 *.mkv) do (
    "%frame%\frameshots.exe" -count 10 -filetype .jpeg "%%A" "%me%\Images"

)

我設置了比必要數量更多的變量,以使其更易於閱讀代碼塊-如果您喜歡循環中的完整路徑,則可以設置更少/無。 for /r將循環瀏覽視頻目錄( dir )中的所有.mp4和.mkv文件,將每個文件設置為參數%%A ,然后在frameshots.exe命令行中使用該參數。 無需循環遍歷所需的dir輸出。

我對FrameShots並不熟悉,所以我只是根據您在問題中提供的示例以及我如何猜測它們需要更正的示例來編寫語法-本質上,當循環迭代時,該行將像這樣讀取:

"C:\Program Files (x86)\FrameShots\frameshots.exe" -count 10 -filetype .jpeg C:\Full\Path\Of\Video\File.extension" "C:\Users\me\Images"

參考: 對於

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM