- ベストアンサー
バッチでテキスト内の一覧を検索・処理させてたい
- テキスト内に記述したフォルダ情報をバッチで検索・処理する方法について質問させていただきます。
- バッチでフォルダ内の情報をテキストに記述し、その内容を検索して入力したファイル名と一致させる方法について教えてください。
- フォルダ情報の検索・判別をバッチで行いたいと考えています。具体的なバッチの記述方法について教えていただけますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
なるほど。 dir /b "C:\Documents and Settings" | find /v "All Users" > C:\temp\users.txt :loop set /p uname="ユーザー名:" findstr /x /i /c:"%uname%" C:\temp\users.txt >NUL if ERRORLEVEL 1 echo "%uname%" は無いようです&goto loop
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
説明が漠然として不明です。 >テキスト内に記述させたフォルダ情報を検索・(判別)させる方法は、 >???????? (test.txtを判別) 「判別」という言葉を具体的にどういう意味で使っていますか? なんらかの判断をしたいようですが、どういう場合にはYESで、どういう場合にはNOなんでしょうか?具体的に。
補足
すみません。わかりにくく漠然とした説明でした。 やりたいことは、ユーザープロファイルの削除です。削除バッチはできてますが、削除前に下記にような処理を考えてます。 1、c:\Documents and Settings内のユーザープロファイル名をテキストに記述 2、set /P で削除するユーザープロファイル名を入力 3、1のテキスト内で、2で入力したユーザープロファイル名を確認 4-1、同一のユーザープロファイル名があったら、削除処理(:syo)へ 4-2、同一のユーザープロファイル名がない場合、2(:loop)へ戻り再入力 以上です。 ???????? (test.txtを判別)は、 2、で入力したユーザープロファイル名を、1、で記述したテキスト内で 判別させる、バッチです。 その結果、4-1、または4-2へ動く処理を考えてます。 お分かりになりますでしょうか。 ※本来なら、下記のようにnet nuserコマンドを使用してユーザープロファイ名を判別させたいのですが、 :loop set /p User_Name="ユーザープロファイル名入力" net user %User_Name% if %errorlevel% GTR 0 (goto nouser) ELSE goto syo :non echo %failname%はないようです。 goto loop :syo ユーザープロファイル削除処理・・・ が、端末は、これまでスタンドアローンで使用し、最近、ドメイン参加しており、ローカルとドメインのユーザープロファイルが混在してます。 net user だと、ローカルにログオンするとローカルプロファイルのみで、ドメインプロファイルは判別しません。 逆に、ドメインにログオンすると、net user /domainでドメインプロファイルのみ判別し、ローカルプロファイルは判別しません。 ●目的は、ローカル・ドメイン両方のプロファイルを削除したいので、 c:\Documents and Settingsの判別を考えました。 ※net userは、もしできれば方法があればと思い、別件で質問をしてます。 『バッチでドメインのユーザーアカウントを判別させたい』 以上、長々と申し訳ないです。 宜しくお願いいたします。
お礼
できました。 findstrとNUL値でできるのですね。 本当に助かりました。 勉強にもなりました。 ありがとうございます。