質問: 初めて投稿致します。 下記のような動作をするbatを作成したいと思っており、どうのように記述したらいいのかご教示頂けますでしょうか。 ショートカットリンク(.lnk)名と、フォルダ一覧テキストファイル(linklist.txt)内に記載のフォルダ名が一致した際に、フォルダにファイルを移動させるbat。 1:今、\\server1\temp\ に、エクセルのショートカットリンクが保存されています。保存されているショートカットリンクは複数の場合もあります。 \\server1\temp\ result-加藤-1.lnk result-山田-2.lnk result-高橋-1.lnk・・・・ 2:一方、\\server2\list\ listフォルダ以下、全ディレクトリが記載された linklist.txtが \\server3\temp\ に保存されています。 linklist.txtの中身(例)はディレクトリが1行ずつ記載されています。記載行数は2000行ほどになります。 \\server3\temp\linklist.txtの記載内容 \\server2\list\temp \\server2\list\temp\result \\server2\list\temp\result\result-加藤 \\server2\list\temp\result\result-山田 \\server2\list\temp\result\result-西村 \\server2\list\temp\result\result-高橋 \\server2\list\temp\result\result-加藤\result-加藤-2 \\server2\list\temp\result\result-加藤\result-加藤-3 \\server2\list\temp\result\result-加藤\result-加藤-6 \\server2\list\temp\result\result-山田\result-山田-1 \\server2\list\temp\result\result-山田\result-山田-2 \\server2\list\temp\result\result-山田\result-山田-4 \\server2\list\temp\result\result-西村\result-西村-1 \\server2\list\temp\result\result-西村\result-西村-2 \\server2\list\temp\result\result-西村\result-西村-3 \\server2\list\temp\result\result-西村\result-西村-100 \\server2\list\temp\result\result-高橋\result-高橋-1 \\server2\list\temp\result\result-高橋\result-高橋-4 \\server2\list\temp\result\result-高橋\result-高橋-10 ・ ・ linklist.txtの最右端のフォルダ名と \\server1\temp\に保存のショートカットリンク名が一致した場合、ショートカットリンクをフォルダに移動したい。フォルダ名がダブる事はありません。 上記1、2の場合は、result-山田-2.lnkとresult-高橋-1.lnkがlinklist.txtのフォルダ名と一致しますので、 result-山田-2.lnk を \\server2\list\temp\result\result-山田\result-山田-2 result-高橋-1.lnk を \\server2\list\temp\result\result-高橋\result-高橋-1 に移動します。 移動させるロジックとしては下記ようになるのかなと思っています。 ・\\server1\temp\のショートカットリンク名をtxtファイルに書き出す(リンク名.txt) ・書き出したリンク名.txtを1行ずつ、linklist.txtの内容と照合する ・照合した結果、存在すれば移動、存在しなければ次のリンク名の検索に移る 照合結果のフラグを立てることも必要と思っています。 SK(SHOGOKEKKA)=1(存在) SK=0(存在しない) 移動のタイミングは、タスクで5分に1回、batを起動させ、実行しようと考えています。 何卒お願い申し上げます。
回答: BATでそんな高度なことをする人はほとんどいないですね。 VBS等の利用をご検討ください。 どうしてもということなら、「バッチファイル基礎文法リファレンス」を検索してみてください。