[過去ログ] 【.cmd】 バッチファイルスクリプト %8 【.bat】 (1001レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
39
(9): 34 2011/09/27(火)01:20 AAS
1個づつは出来るようになったので、後は複数反転を処理できるよう
ずっと試行錯誤していたのですが結局できませんでした・・・orz
もしよろしければアドバイスを頂けないでしょうか?

移動する予定のテキストは1.txtから●1.txtのように、手動で
文頭に●を加えて、aaaフォルダの検索窓(windowsエクスプローラ)
から●のあるテキストを探して全て反転させ、右クリ>このbat
で移動したいと考えています。

@for %%A (%*) do (
Acd /d "%%~dpA"
B2>nul "%cd:\="&set "HIRAGANA=%"
Cmove "%%A" "Z:\hoge\bbb\%HIRAGANA%\"
D)

自分的にはこれが一番近いような気がするのですが
cmdは一瞬しか立ち上がりませんでした。
引き続き恐縮なのですが、どうかアドバイスを頂けないでしょうか?
ご指導ご鞭撻のほどよろしくお願いします。
40
(3): 2011/09/27(火)03:21 AAS
>>39
dir /b /s z:\hoge\aaa\●*.txt
プロンプトで実行してみ

for /f %%A in ('dir /b /s z:\hoge\aaa\●*.txt') do ()
とかで取り込めば?

バッチの先頭のほうで
set aaa=コピー元パス (z:\hoge\aaa)
set bbb=コピー先パス (z:\hoge\bbb)
とか設定するようにしておけば
ダブルクリックで実行したりタスクスケジュールで定期的に実行したり出来るよ

for /f %%A in ('dir /b /s %aaa%\●*.txt') do ()
こんな感じで

>>39のコマンドがダメなのは確認して無いけど遅延展開してないからだと思う
forの中は
call :sub %%A
とか使ってサブルーチン化するのが楽じゃないかな
41: 39 2011/09/27(火)03:32 AAS
すいません、さっきの文頭「●」は文頭「処理」に変更しました。
●で検索したら大変なことになりました(汗)

えっと、それでさっきのソースなんですが、@のforの後にinを忘れてました。
@for %%A in (%*) do (
今度は無事に立ち上がりました。しかし上手くはいきませんでした。
moveの実行でZ:\hoge\bbb\以降から何故かCドライブに続いて
;というマークを区切りにいくつもの関係無いフォルダを辿って行ったみたいでした。
要求されたパスまたはファイル名は受け付けられません。とのことでした。

ここでCをmove %%A "Z:\hoge\bbb\"
で%HIRAGANA%を省くと全ての選択ファイルをbbbフォルダには移動してくれました。
ここから先はどうすればよいのか分からないですが…

とりあえず寝ます。連投失礼しました。

>>40
アドバイスありがとうございます!
さっそくやってみたいと思いますが、ちょっと眠気が…
寝てしまったらすいません。けどありがとうございました!
44: 39 2011/09/27(火)03:58 AAS
>>42>>43
わざわざありがとうございます。よく読んで勉強したいと思います。

すいません、あと、自分で言って何なんですが
文頭の「●」や「処理」をコマンドで取り込むのは
出来れば最終手段の方向でお願いします。

というのも、テキストファイルだけなら良いのですが、他にも編集する拡張子があって
それらは別のソフトで編集しながら、そこで付けたタグやメタデータから
ソートして集めて反転、これをソフトからbatにボタンでドロップして移動する頻度の方が多く
●や処理などのリネームはtxtは良いのですが他が二度手間になってしまうので…
せっかくのアドバイスに難癖をつけてしまって申し訳ありません。

ただ、とても参考になりました。echo offと遅延展開、それとサブルーチン化
dirの使い方など勉強になります。初めての事ばかりですが試行錯誤してみます。
調べてみます。ありがとうございました。
46: 39 2011/09/27(火)05:08 AAS
>>45
ありがとうございます!目的の半分は達成しました!というのも
aaa\あああ\1.txtと2.txtはbbb\あああ\に移動できたのですが

aaa\あああ\1.txtと2.txt、aaa\いいい\3.txtと4.txt
これら4つを反転させた状態でbatにドロップするとbbb\いいい\
に全てが移動してしまうようでした。rem ここに処理を書く、の下の行に

cd /d "%~dp1"
2>nul "%cd:\="&set "HIRAGANA=%"
move %1 "Z:\hoge\bbb\%HIRAGANA%\"

と書いた場合もそうですが、駄目もとで

for %%A in (%*) do (
cd /d "%%~dpA"
2>nul "%cd:\="&set "HIRAGANA=%"
move %%A "Z:\hoge\bbb\%HIRAGANA%\"
)

と書いた場合も同様でした。
私の書き方がまずいんだと思うので、なんとか頑張ってみます
ありがとうございました!
47: 39 2011/09/27(火)05:47 AAS
右クリbat
for %%A in (%*) do (call "C:\3.script\tst\sub.bat" %%A)

sub.bat
cd /d "%%~dpA"
2>nul "%cd:\="&set "HIRAGANA=%"
move %%A "Z:\hoge\bbb\%HIRAGANA%\"

>>40から見よう見真似で作ってみました。
多分構文が凄い間違ってるので%Aが引き継がれなくて何も起きませんでした。
もうちょっと勉強してきます。次はgoto…
あぁ頭良くなりたい眠いくっそおお
48: 39 2011/09/27(火)05:55 AAS
あれ!?え!どうして!!?
>>45からまた始めたのですが、さっきは失敗したのに何故か成功しました!

おそらく最初のforでinを忘れたように、何か文字が抜けてたんだと思います。
ありがとうございました!これで完璧に達成できました!
皆様本当にありがとうございました!

これでやっと寝れる・・・6時か・・・・・・眠眠打破かってきます
けど凄い嬉しい目がしゅわしゅわする
58
(1): 2011/09/29(木)21:07 AAS
>>39

for %%A in (%*) do (
set X=%%A
call move %%A %%X:\aaa\=\bbb\%%
)
63: 39 2011/09/30(金)21:25 AAS
先日はお世話になりました。

>>58
お返事遅れてしまい申し訳ありません。どうもありがとうございました。
先ほど試してみたらこれだけで移動する事ができました!ものすごく感動しました!

そこで是非とも意味を理解したく:や=や単体での%%の使い方、またはfor %%A in (%*) do (set X=%%A
の意味を調べているのですが、なかなか見つかりません。
なので、もうこうなったらbatの優しい参考書があれば購入しようと思うのですが
何か初心者にも分かり易いものはありますでしょうか?
66
(1): 39 2011/09/30(金)22:36 AAS
>>64
穴が空くまで読めということですね。ありがとうございました。

>>65
Webの場合は全てのHPを行き来すれば網羅的だと思うのですが
この行き来をなくして、馬鹿な私もついていけるような前提から説明して一緒にbatを作り上げるような
そんな本であれば購入しようと思っていたのですが、古い情報だとまずかったりするのですね。
HPをめぐって勉強しようと思います。ありがとうございました。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.142s*