2016-09-17 8 views
0

バッチファイルを指定したフォルダ内から完全にランダムなテキストファイルを選択することは可能ですか?バッチでランダムテキストファイルを選択

誰かが私を助けてくれますか?ここでの目標はそれを作ることです

時に\ワークステーション\ジョブズ とそのフォルダ内の10-20 .txtファイルが多分そこにある:C:

例 は、私がここにあるフォルダを得たことを言うことができますバッチファイルテキストファイルのみを含有し、フォルダの場合は、変数

+2

あなたは今、答えはあるので、あなたの質問を言い替えるしたいとしている「はい、それはある。」 – SomethingDark

+0

があります前記folの他のファイル? – YVbakker

+0

@YVbakkerいいえ、テキストファイルのみがあります。 – NickyGamePlays

答えて

2
@ECHO OFF 
SETLOCAL 
SET "sourcedir=U:\sourcedir" 
FOR /f %%a IN (
'dir /b /a-d "%sourcedir%\*.txt"^|find /i /c ".txt" ' 
) DO SET /a selection=1 + (%RANDOM% %% %%a) 
FOR /f "tokens=1*delims=:" %%a IN (
'dir /b /a-d "%sourcedir%\*.txt"^|findstr /n /i ".txt" ' 
) DO IF %%a==%selection% SET filename=%%b 
ECHO selected %filename% 

GOTO :EOF 

あなたの状況に合わせてsourcedirの設定を変更する必要があります。

find /cは、dirコマンドで検出されたファイルの数をカウントし、forは、カウントを%%aに割り当てます。 selectionは1+(ランダム番号 mod ファイル数)に割り当てられ、1.ファイルカウント。 delimsである第1デリミタafther(ファイル名を:前番号(トークンが割り当てられる%%と%%b

findstr /nによってシーケンシャル番号を接頭辞、dirコマンドで見つかった各ファイルの名前を出力します:

行番号は、ファイル名が見つかったファイル名が割り当てられ、selectionと一致する。

+0

あなたのコードには1つの問題しかありません。空白のあるファイルを扱うように見えますが、それは実行が拒否されたことを意味します。 – NickyGamePlays

+0

ファイル名にスペースが含まれていても、ディレクトリ名にスペースがあっても完全に実行されます。使用しているファイル名の小さなサンプルを投稿してください。 – Magoo

+0

ファイル名は、実際にはその作業を行ったPCのユーザー名です。Private User Account.txt、Guest User Account.txt、Dave's Account.txt、Lennys Account.txt – NickyGamePlays

2

に選びだしたファイルをフォルダをチェックして、ランダムなファイルや出力を選択し、次のものが必要だろう:

  • リストいくつかの種類のフォルダコンテンツの
  • (DIR)
  • は(forループ)ファイルの量をカウントアレイの0とファイルの量(%RANDOM%* amount_of_files/32768)
  • 出力マッチングファイル名(中間の乱数を選択
    http://ss64.com/nt/syntax-random.html
    :あなたは、これが

    源:-)正しい方向にあなたをプッシュ

希望する変数の配列) 0
Create list or arrays in Windows Batch

関連する問題