ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:gonxyz バッチファイルでテキストファイルの中身を置換
困り度:
  • 困っています
dir C:\*.zip /b /a-d /s > ジップ.txt
で作成した、ジップ.txtがあります。

このテキストファイルをパス名を削除してファイル名のみに置換したいのですが、どなたか教えて頂けますか?
質問投稿日時:08/04/08 19:28
質問番号:3932951
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

 

回答者:koko_u_ >すみませんが、delimsとか~nxfの意味も教えて頂けませんか?

C:\> help for
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/10 22:00
回答番号:No.7
この回答へのお礼koko_u_さん
大変ありがとうございました。
結果をテキストファイルのは自己解決しました。

ただhelp forをみても自分には意味が分かりませんでした。

今回はTacosanさんのを使わせて頂きました。

回答

良回答20pt

回答者:Tacosan 「1行に 1個ずつファイル名が書いてある」として, 「フルパスだと長いのでパスを消してファイル名と拡張子だけにしたい」ということ?
だとしたら
for /F "delims=" %f in (ファイル) do @echo %~nxf
でできるような気がする.
あ, バッチファイル (スクリプト) の中で使うなら
for /F "delims=" %%f in (ファイル) do @echo %%~nxf
のように %% とする必要があります.
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/10 17:04
回答番号:No.6
この回答への補足Tacosanさんありがとうございます。
ほぼ完璧です!

あと、結果をテキストファイルにするには、
どうすればよろしいでしょうか?

すみませんが、delimsとか~nxfの意味も教えて頂けませんか?
この回答へのお礼大変ありがとうございました。
結果をテキストファイルのは自己解決しました。

ただhelp forをみても自分には意味が分かりませんでした。

回答

良回答10pt

回答者:HowOver 別案こっちの方がよさそうですけど
text3.txtの出来るタイミングがなんかおかしい。

dir *.zip /w /a:-d /s /o:g > test1.txt
findstr /v "^$" test1.txt > test2.txt
findstr /v /r /c:"^ ." test2.txt > text3.txt
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/09 01:01
回答番号:No.5
この回答へのお礼HowOverさん
大変ありがとうございました。

今回はTacosanさんのを使わせて頂きました。

回答

 

回答者:HowOver こんなところが限界

dir c:\*.zip /w /a:-d /s /o:g > test1.txt
find /v " 個のファイル" test1.txt > test2.txt
find /v " 個のディレクトリ" test2.txt > test3.txt
find /v " のディレクトリ" test3.txt > test4.txt
find /v "" test4.txt > test5.txt
findstr /v "^$" test5.txt > test6.txt

気に入らないところは研鑽してください。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/08 23:40
回答番号:No.4
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:koko_u_ >1.パソコン内の、特定の拡張子(jtd、xls等)で検索してテキストに出力します。
>2.そのテキストのフルパス名を頼りに特定のファイルのみを削除します。
>(ファイル名では絞れないため)
>3.結果を印刷したいのですが、用紙削減のためフルパス名を削除したいのです。

2番は出力されたテキストファイルをテキストエディタか何かで開いて目で見て削除しているのですか?
であれば、その後エディタの置換機能でファイル名だけ残せばよいように思いますが。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/08 22:56
回答番号:No.3
この回答への補足そうです、メモ帳でやってみたけどうまくいきませんでした。
置換で「*\→空白」とやったけど出来ませんでした。

それに、パソコンが分からない人にも使えるようにしたいのです。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:Tacosan 確か
for /r C: %%f in (*.zip) do @echo %%f
でもドライブ文字とディレクトリが付いちゃったような気がします>#1.
for /r C: %%f in (*.zip) do @echo %%~nxf
でしょうか.
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/08 20:16
回答番号:No.2
この回答への補足補足します
1.パソコン内の、特定の拡張子(jtd、xls等)で検索してテキストに出力します。
2.そのテキストのフルパス名を頼りに特定のファイルのみを削除します。(ファイル名では絞れないため)
3.結果を印刷したいのですが、用紙削減のためフルパス名を削除したいのです。(ファイル名はダブっても可)

2番までは出来たのですが、3番のフルパス名を削除が分かりません(><)

初心者なので出来るだけ、わかりやすく教えていただけると助かります。


koko_u_さんTacosan素早い回答ありがとうございます。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:koko_u_ ファイル名だけ欲しいなら for ループでまわしておけばいいのでは?

for /r C: %%f in (*.zip) do echo %%f

のような感じで
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/08 19:44
回答番号:No.1
この回答への補足補足します
1.パソコン内の、特定の拡張子(jtd、xls等)で検索してテキストに出力します。
2.そのテキストのフルパス名を頼りに特定のファイルのみを削除します。(ファイル名では絞れないため)
3.結果を印刷したいのですが、用紙削減のためフルパス名を削除したいのです。(ファイル名はダブっても可)

2番までは出来たのですが、3番のフルパス名を削除が分かりません(><)

初心者なので出来るだけ、わかりやすく教えていただけると助かります。


koko_u_さん素早い回答ありがとうございます。
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示良回答のみ表示