初心者〜管理者まで必読!コマンドライン(DOS Pt.7)
1 :
名無し~3.EXE :
2008/08/03(日) 13:36:11 ID:LQkUy7Y5 適材適所で GUI と CUI を組み合わせて、 (゚д゚)ウマー
DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。
質問も歓迎だけど、自分で調べて勉強する努力も忘れずに。
前スレ
ユーザー必読!コマンドライン(DOS Pt.6)
http://pc11.2ch.net/test/read.cgi/win/1176558776/
初心者〜管理者まで必読!コマンドライン(DOS Pt.7) と入れようとしたら、問題なかったので、Pt.5に合わせました。 ちょっとテンプレ変更したけど、足したほうが良さげな物があったら随時よろ grep,awk,sed等のオーソドックスな外部コマンドとかテンプレに入れても大丈夫かな
type いちおつ.txt
か、かんちがいしないでよね!
これは
>>1 乙じゃなくて
アイスラッガーなんだからっ!!
Windows 関連を入れるなら、タイトルから DOS をはずした方がいいと思う。
武力で日本を侵略した朝鮮人が1500年間も嘘で日本人を騙し続けて来た天皇制の歴史。 日本の神話は全て盗作。 ギリシャ神話のパクリで構成されている。 聖徳太子が馬屋で産まれたと言うのは聖書のパクリ。 モーゼの出エジプトのパクリまである。 チョン公は昔から盗みを得意としていたのだ。 日本の歴史の恥部だ。 昔は公地公民といって、土地、人民は天皇の物として、重税を課し、 日本国民の財産を略奪していた。 朝鮮人は日本に人殺しと盗みの文化を持ち込んだ。 つい最近まで、国民は臣民と言われ、天皇の下僕同然であった。 マッカーサーの押し付けで、処刑を免れ、ただの飾りとなった今でも、 天皇は国家元首で、日本の君主で、国民の代表内閣総理大臣は天皇の家臣で、 国民は臣民だなどと言ってる者がいる。 民主主義を否定するこの様な危険思想が蔓延しない内に、 災いの種は取り除いておいた方が良い。 俗に大正デモクラシーなどと言うが、その後日本がどうなったか。 今はまさに平成デモクラシーだ。 二度と日本の自由と民主主義を侵さないように我々の時代に反民主的天皇制は廃棄しましょう。
install shield で java をサイレントインストールする時、 start /wait パス\jre-6u7-windows-i586-p-s.exe /s /v "/qn MOZILLA=1 /quiet" は通るけど start /wait "パス\jre-6u7-windows-i586-p-s.exe" /s /v "/qn MOZILLA=1 /quiet" だと無効なスイッチです "/s" って表示される。 引用符の位置を色々換えてみたけどダメ。 別に空白を含むパスを使うワケじゃないんだけどどうするのが正解なのか気になって仕方ない。 誰か教えて下さい。
start "" /wait 〜
>>8 start の最初の "" でくくられた引数はウィンドウのタイトルになる。
>>9-10 凄いスッキリした、ありがとう。
start が原因とは気づかなかった。
12 :
名無し~3.EXE :2008/08/08(金) 14:11:47 ID:3xUz0GK0
ここで聞くべきかどうか把握出来てないんですが C:\Document and Settings\User\My Document\hogehoge.mov C:\Document and Settings\User\My Document\mogemoge.mov なんてファイルがたくさんある状態から ファイル名 hogehoge.avs 中身 QTinput("C:\Document and Settings\User\My Document\hogehoge.mov") -- ファイル名 mogemoge.avs 中身 QTinput("C:\Document and Settings\User\My Document\mogemoge.mov") となるファイルを自動的に生成するような事をしたいのですが 具体的にどう組めばいいですか? そもそもコマンドでやるのが妥当かどうかも分からないんですが。 よろしくお願いします。
for /F "delims=" %i in ('dir /b') do echo QTinput("%~fi")>%~ni.avs
>>12 バッチファイルで全部やるのは複雑で面倒なので、自分の場合はsedを使った記述を
エディタで整形して使い捨てのバッチ書いてるよ。
dirでカレントのファイル名取得⇒矩形選択でファイル名のみコピー
一旦エディタに貼り付けて拡張子を取り除いてコピー
sed -e "s/hogehoge/矩形挿入/g" > 矩形挿入.avs
必要な行数だけコピーして、矩形挿入してバッチファイル作成。
ちなみにカレントから実行するなら、フルパスは必要無い。あるいはソースディレクトリを指定しておいても良い。
あとさ、自分で考える気が無い丸投げ質問は、はっきりそう書いてないとむかつくんだけど。
面倒?複雑?矩形挿入? どっかの誤爆かな?
>>15 そういう皮肉むかつくんだけど。
あんたのはカレントに必要なファイルしか無いのが条件だろ。
ファイルリストがあるなら'dir /b'の所に突っ込むだけだし。 サブディレクトリも欲しけりゃdir /b/sにするだけだし。 どうとでもなるだろこんなもん。 別に作ってくださいって言ってるわけじゃないんだから使ってるコマンド位調べるだろ普通。 それよりここはWindows板だよ?目玉どこについてるの?
人をけなす事しか考えてないから、そういうおかしな事しか言えないんだな。 どっちでもいいから質問者が納得すりゃいいんじゃね。
> あとさ、自分で考える気が無い丸投げ質問は、はっきりそう書いてないとむかつくんだけど。 自分の事を棚に上げてよく言うわw こんな単純なレベルでカッカすんなよ。 ハッキリ言って俺はこの言いようにむかついたぜ? お前さんに絡んでるのはこの一行があるからだけど。
@echo off まあ落ち着けよおまえら
お前ら恥ずかしくないのか
基地外に絡まれていた事がわかって落ち着いた。
最後にレスしたら勝ちだと思ってるんだろうなぁ... 誰のこととはあえて言わないけど。
何この流れ。久しぶりに酷い自演をみた。
ID:3xUz0GK0=ID:7KU6lvn8=ID:FjUQKucb だな。
>>14 でケチを付けられて火病ったな。
>>23 で最後にID変えてまで粘着するとは。
やった言うと思った。 今日中にレスが付くかどうか心配だったりしてたんだがな。 絶対ID変えてこういうこと書いてくると思って。
ID:E8D2v6dAよ。自演じゃないなら出ておいで。でも無理かな。 ID変えるのは出来ても特定IDを取得するのは至難の技だからな。
とりあえずリロードしてから書くことを覚えような。 そしたらこんな道を聞かれたレベルの簡単なことで不必要に難しく考えて恥晒すことも無かったんだし。 質問者にいらん怒りを感じることもなかったろうし。 変なタイミングでレスをしてしまうことも無いだろうし。
どっちもキチかよ…
別に負けでいいんだが普段から自分も(ファイル名を取得してるわけじゃないが)
avsのソース書き換えて大量にコピーって事をやってる。
avsの中身は自分の場合は(普通は)複数行なので、自分のやり方が参考になれば、
と思って投稿しただけ。もちろんsedはWindows版があるので拾って使うといい。
>>12 もう自演なのか何がなんだかわからないけど。
>>24 自演じゃないぞ。
つうか、ID:3xUz0GK0=ID:7KU6lvn8 はありえんだろ jk
> ID:7KU6lvn8
いちいちはしゃぐな、
>>13 の書き込みが台無しだぞ。
あの、ここ、コマンドラインスレで、合ってますか?
33 :
名無し~3.EXE :2008/08/09(土) 06:33:29 ID:T6ZidsGV
>32 Vista DOS窓は死んでるんじゃ。 MSが一方的に日本語サポート取りやめた。 Vistaの互換性を儲が擁護しているけど。 書換えたんだろうが、Win32 APIなどともに過去の達成水準の継承能力無し、縮小再生産。 全く新しくも古くもないサブセット版w
>33 ???
またこいつか
>>34 command.comで日本語がサポートされなくなって困る奇特な人もいるにはいるってことさ
Powershell でもダメなんかいな?
38 :
名無し~3.EXE :2008/08/10(日) 13:48:50 ID:ID8GXXIn
長い釣り竿も短い釣り竿も揃えたいっていうことさ釣り好きはw 素朴な竹竿の釣り心地もいいものだ。 タナゴはタナゴ用の竿にかぎる。 DOSの延命環境+Winの素朴なツール+Unixライクなユーティリィティ+Lightweight Language コマンド・ラインのサーカスみたいな書き方には興味あるらしいが狭量だねw
command.com使いたければvirtualPCでXP動かすとか
待ちたいんじゃね?
42 :
名無し~3.EXE :2008/08/10(日) 16:43:42 ID:ID8GXXIn
>39 そんな発想の香具師は、cmd..exeで十分なんだろうw PowwrShellでオプジェクトのパイプで遊びなw 仮想環境なら、もっとましなのありそう。 Vista導入する必要もないしw
あー・・・数ヶ月前までスレ立てて一人延々と愚痴ってた人がやって来てるのね
44 :
名無し~3.EXE :2008/08/10(日) 17:55:52 ID:ID8GXXIn
>43 俺、スレ立てかた知らない阿呆だが、そのスレ立てた仲間がやって来たぐらいは分かるんだw
>>33 とID:ID8GXXInは同レベルでキモイんだけど。
どっちもNGにするから、これからはトリップつけてね。
start /wなくてもバッチの中だと待つの知らないの?
47 :
名無し~3.EXE :2008/08/10(日) 22:52:28 ID:ID8GXXIn
>45 ふん。コマンドラインと言いつつ、わざわざ(DOS Pt7)付け加えても、網羅出来てないんじゃんw
人を見下したがる奴大杉
49 :
名無し~3.EXE :2008/08/10(日) 23:49:21 ID:ID8GXXIn
>48 つるんで工作するもの多過ぎ。 何人来てるんだw
50 :
32 :2008/08/12(火) 13:32:46 ID:pnm7rX8S
私は、ただコマンドラインスレの本スレを探していただけなのですが… どうやら、ここは煽り合いのスレみたいだったので…
ネタが無きゃ煽り合いのスレ。そんなのはどこのスレも一緒。
すいません質問です call バッチファイルA && 構文 という書式は成立し得ませんか?呼び出し先のバッチファイルAではアプリを走らせて 数分かかる処理をするのですが、上記のバッチを走らせても一瞬でウインドウが 閉じてしまいます(&&以降を消すとバッチファイルAを呼び出して実行するところまでは問題なし) 環境はXP SP3です
その書式は成立する。バッチファイルAの内容に問題がある
>>53 すいません構文の方の書式が間違っていました、修正したところ
望みどおりの動作になりました。ありがとうございます。
今回作業してて、callって意外と大事なんだなぁと思ったり思わなかったり
55 :
名無し~3.EXE :2008/08/16(土) 18:23:35 ID:G7sA1O6w
なんかずるして怒られそうだけど? c:\temp\a.txt または クリップボードにあるテキストをこの板に投稿するのは、どう書けばいい? DOS窓だと無理かな。VBScriptでもかまわないけど。 テキストエディタの投稿マクロ用に使える。
そのエディタのマクロでやればいいんじゃないかな
57 :
名無し~3.EXE :2008/08/16(土) 19:29:19 ID:G7sA1O6w
>56 WindowsのAPIを直接扱うようにはできてなかったりする。 やろうと思えば、通信手順を調べて、マクロにスクリプト言語を接続して記述すればいいことだが、 ふと思いついて、たまたま、そういう用途のコマンドラインの手順またはVBScriptを書いた人とがいないかなと考えて。 それだと僅かな時間でマクロ書ける。 だからずるしてと・・・;
PowerShellでやれ
59 :
名無し~3.EXE :2008/08/16(土) 20:01:42 ID:G7sA1O6w
>58 だか、それは断わる。 ない袖は振らなくていい。 消えるよ。
WSHでIEを操作してformのtextareaにセットして書き込むボタンをclick()
あるフォルダの中にある複数のテキストファイルの中身に特定文字列が 含まれているファイルの名前のみを表示する方法ってないでしょうか? findだと含むファイルの名前のみには出来なかったので よろしくお願いします
どっかからgrep持ってきた方がいい
つまり標準では無理または難しいと言うことでしょうか? それならばgrepを探してみます どうもありがとうございました
find /c
findstr /m
とあるソフトのエラーログです↓ missing -n command line switch. …-nってなんでしょうか?
コマンドラインオプション DOS系由来のコマンドは「コマンド名 引数 /オプション」みたいに付けるけど UNIX系由来のコマンドだと「コマンド名 -オプション 引数」みたいに付ける メッセージの意味は -n オプションが必要な場面で -n がついてない、ってところかな? どんなアプリで何しようとしたの?
squidってproxyで表示されたんだけどそういう意味なんすね、どうもです
69 :
名無し~3.EXE :2008/08/20(水) 10:28:17 ID:l/OdbGWk
教えてください。 CドライブやDドライブにあるProgram Filesフォルダのファイルは BATファイルで消すことは不可能なんですか? del D:\Program Files\test\test.txt といったbatファイルを作ったのですが"指定されたパスが見つかりません" となってしまいます。 Program Filesのファイルを消す方法があれば教えてください。 Windows vistaですが、XPでも使いたいのですが・・
>>69 とりあえずスペースが入ったパスは""で括るといい
VistaのProgram FilesはVirtualStore機能があるのでまぁがんばれ
72 :
69 :2008/08/20(水) 13:56:41 ID:l/OdbGWk
>>71 うわ〜〜〜〜 できました。
ありがとうございます!
>>70 エラーは 指定されたパスが見つかりません だったです。
73 :
69 :2008/08/20(水) 15:06:59 ID:l/OdbGWk
すみません。できたと思ったのに・・orz vistaでは、パスを""で括る事でOKだったのですが XPではダメでした。 [指定されたパスが見つかりません]と表示されているようです。 (画面の流れが速すぎでエラーが見えないのですが) XPでも動かせる良い方法はないでしょうか?
proxyのlogのローテーションをしたくてとあるサイトの.batを使った所上手くいきません
.iniファイルに.logファイルを指定して、2つの.batで行うみたいです↓
ttp://specialimpact.blog22.fc2.com/blog-category-1.html access.logとstore.logの2つを指定したいんですがやり方が分からず、試しにconfig.iniに両方の
パスを指定しても実行されるのはstore.logだけでした。そこで一度サービスを止めてから実行してみると
延々同じプロセスが増え続けたので慌てて再起動しました orz
OSはWinXP-SP3です、すいませんが同じ動作の出来る.batを紹介してもらえないでしょうか
>>73 まずコマンドプロンプトにD&Dしてbat動かせ
76 :
69 :2008/08/21(木) 11:59:26 ID:kBgR5zFs
>>75 ありがとうございます。
XPのテストで、del D:\Program Files\test\test.txt を
del d:\test\test.txt に変更して、コマンドプロンプトにD&Dして実行
してみました。
エラーは[d:\test\test.txt が見つかりませんでした]となりました。
パスを""で括っても同じ結果でした。
Program Files配下のフォルダ内ファイルの削除とかいう問題では
ないのですね。
何か原因わかりますか? よろしくお願いいたします。
d:\test\test.txt が存在しない。
78 :
69 :2008/08/21(木) 13:25:17 ID:kBgR5zFs
>>77 いや、さすがにそれはw・・
確認したらちゃんとあったんですけど、実際には消えているのに
見えてるだけとか!?
>>78 コマンドプロンプトで以下のコマンドを実行し、結果を貼り付けてくれ。
3行を一度にコピー⇒上の青いバーを右クリック⇒編集⇒貼り付け
結果が出たら、編集から、全選択、コピーで。
d:
cd \test
dir /b
80 :
69 :2008/08/21(木) 13:56:05 ID:kBgR5zFs
>>79 ありがとうございます。
関係ないですけど、コマンドプロンプトでの
コピペ方法はじめてしりました。勉強になりました。
三行を一度にコピペしたところ、何も変わらなかったので
一行ずつ入力してみました。
以下結果です。(エラーがでたのでdir部分だけ)
すごく恥ずかしいことがわかりました・・・・orz
--------------------------------------------------
D:\test>dir
ドライブ D のボリューム ラベルがありません。
ボリューム シリアル番号は 5B2A-F839 です
D:\test のディレクトリ
2008/08/20 14:12 <DIR> .
2008/08/20 14:12 <DIR> ..
2008/08/20 13:54 0 test.txt.txt
1 個のファイル 0 バイト
2 個のディレクトリ 57,054,982,144 バイトの空き領域
D:\test>
--------------------------------------------------
そりゃ消えねぇぇぇぇぇぇ。
こんな事でお騒がせしてしまってすみませんでした。
拡張子は全表示にしていると思い込んでいたので確認すらしてませんでした。
ファイル名を変更したら、Program Files配下でも問題ありませんでした。
解決へ導いてくださってありがとうございました。
del /a test.txt
ありゃ、解決したの。おめでとさん
84 :
69 :2008/08/21(木) 16:05:17 ID:kBgR5zFs
今回のは高度な回答だったな 自分で気付かせるとはすごい w
> 2008/08/20 13:54 0 test.txt.txt ワロタw こういうスレに来てこういうオチをつけるとはw
所詮 Windows 板ですから。
88 :
名無し~3.EXE :2008/08/28(木) 17:08:24 ID:+VgBkJwA
ログオンスクリプトからコマンドプロンプトのウィンドウって開かないの? コマンドプロンプトのウィンドウを使うインタラクティブなスクリプトを ログオンスクリプトに登録したいのだけど、プロセスは起動するのに窓が 開かない。どうすればいいんだろう。
>>88 89を勝手に補足
[コンピュータの構成]-[管理用テンプレート]-[システム]-[スクリプト]
>>88-89 ありがとう。
スクリプトの個別の選択はできないんだね。
あと、コマンドプロンプトが最小化状態で開くんだけど、最初から
ウィンドウが開いた状態で起動する事はできないだろうか。
他人に頼らず自分で開けばええがな
>>92 それでいいかどうかは運用で決めることでしょ。
技術的にはできるかどうかだけが問題なわけで。
あっそう
ウィンドウを元のサイズに戻すスクリプトを呼ぶ 過去スレに最小化するスクリプトがあった。書き換えればok
>>95 MS Officeに依存したものとSendKeysを使うものとがみつかった。
MS Officeには依存したくない(そもそもない)のでSendKeysを使うもの
(Alt-Space nを送る)を試してみた。
notepadとかならちゃんと動くけど、cmd.exeやcscriptのウィンドウは
制御できなかった。" n"が送られて、Alt-Spaceとして受け付けて
もらえないようだ。
ググってみると同じようにcmd.exeを最小化しようとしてAlt-Spaceが
無視られている例がたくさん見つかるけど、コンソールアプリには
Alt-Spaceが届かないのだろうか。
コンソールアプリには届くよ
コンソールアプリからreadconsole()
最大化しちゃっていいならstart /max経由で実行してみるとか
startでだめなのか
全く原因が分からないので書かせてもらいます。 FOR %%i IN @(*.zip) DO 7z e -o"%%~ni" "%%i"|ping 1.0.0.0 -w 500 -n 1|AREN "%%~ni\*.txt" "%%~ni.txt"|BMOVE /Y "%%~dpni\*.txt" "%%~dpi"|CIF EXIST "%%~dpni\%%~ni\*.PNG" REN "%%~dpni\%%~ni" "%%~ni-PNG" あるバッチファイルを作ろうとしているのですが @圧縮ファイルの解凍 7zのコマンドラインから圧縮ファイルと同じ名前のファイルを作りそこに中身を解凍する。 A中身のリネーム 解凍した中身のテキストを圧縮ファイルと同じ名前にする Bファイルの移動 中身のテキストを圧縮ファイルと同じところに置く CPNGの存在確認 解凍時に作ったファイルの中にPNGファイルがあるかどうか確認。あった場合フォルダ名の末尾に"-PNG"を追加する。 としたかったのですが、CのIF EXISTの後の文でエラーが出てしまいます。 具体的なエラー内容は"RENの構文が間違っています"となるのですがRENをECHOに変えてみても "ECHOの構文が間違っています"と出てしまうので、恐らくIFの構文自体に何か見落とし(間違い)があるものと 踏んだのですが調べてみても一向に分かりません。 理由が分かる人がいたら教えてください。 よろしくお願いします。
間違えました FOR %%i IN (*.zip) DO 7z e -o"%%~ni" "%%i"|ping 1.0.0.0 -w 500 -n 1|REN "%%~ni\*.txt" "%%~ni.txt"|MOVE /Y "%%~dpni\*.txt" "%%~dpi"|IF EXIST "%%~dpni\*.PNG" REN "%%~ni" "%%~ni-PNG"
何これ? 全部パイプで繋げてんの?
パイプ使ってる意図は何? パイプ使わなきゃまともに動くだろ。
>>104-105 すいません"|"は複数のコマンドを一行にまとめることができる記号かと思っていました。
そうなると複数のコマンドを一行にまとめる形にするには、CALLやGOTOで他のバッチファイル等を呼び出す
しか方法は方法は無いのでしょうか?
&&じゃダメなの?
フォルダ名の変更はMOVEを使う
別に一行に拘らなくてもいいんじゃね? FOR %%i IN (*.zip) DO ( 7z e -o"%%~ni" "%%i" ping 1.0.0.0 -w 500 -n 1 略 )
>>106 %systemroot%\pchealth\helpctr\binaries\HelpCtr.exe /url ms-its:ntcmds.chm::/ntcmds_shelloverview.htm
とりあえずここでも見ようか。
あと、
for /?
も。
>>108 renでも変わるよ。
パイプに関してはこっちも見たほうがいいかも。 %systemroot%\pchealth\helpctr\binaries\HelpCtr.exe /url ms-its:C:\WINDOWS\Help\ntcmds.chm::/redirection.htm
>>107 どうやらこれだけでは解決しないようです。
情報の提供ありがとうございます。
>>109 出来ました!
ありがとうございました。()なんて使えたんですね。
7zの挙動が若干おかしかったのも|が他の命令も同時に実行しようとしていたからっだったんですかね。
>>110-111 先ほどからいろいろと教えていただき
本当にありがとうございます。
インターネットなんて見なくてもこういう情報はもともとwindowsに入ってるものなんですね。
参考にさせていただきます。
start HelpCtr
パイプは前の処理が吐くメッセージを次の処理が受け取るためのものであって (厳密には色々とあるけど傾向としては、な) 複数の処理を単に流すのには不適切だよ
繋げるなら&か&&か||だな。 パイプはコマンドによって挙動が違うし要注意。
116 :
名無し~3.EXE :2008/09/05(金) 00:52:41 ID:ztjesGVg
コマンドプロンプトを一回閉じてもコマンドラインを記憶しているHistory機能ってない?
コンソールログのこと?
ファイル名を指定して実行
doskey exit=doskey /history ^>history.txt $t exit
>>119 それで保存できるのはいいとして保存したHistoryを
読み込む機能なんてあったっけ?
sendkeys
for /F %i in ( ' dir /b ' ) do @echo %i みたいな感じで、%iを置換して表示したいんですが、どうすればよいですか? 普通の変数だったら %i:hoge=fuga% 見たいな感じでできると思うんですが
何をしたいのか良く見えないが for /f "usebackq" %i in (`dir /b`) do @echo %i じゃイカンのか?
for /F %i in ( ' dir /b ' ) do @set i=%i & call echo %%i:hoge=fuga%%
>>124 こんなことになっちゃいますけど・・
D:\>for %i in ( hoge1 hoge2 hoge3 ) do @set i=%i & call echo %i:hoge=fuga%
fuga3
fuga3
fuga3
for /F %i in ( ' dir /b ' ) do @set i=%i & cmd /v:on /c echo !i:hoge=fuga!
for /F %i in ( ' dir /b ' ) do @set h=%i & call echo ^%h:hoge=fuga^%
>>126 おお意味がまったくわからないですけどこれです!
ありがとうございます。
ちなみに良かったら1点だけ教えていただけますか?
D:\tmp\新しいフォルダ>dir /b
hoge1
hoge2
hoge3
コピー 〜 hoge3
こんな感じのファイルが置いてある場合
D:\tmp\新しいフォルダ>for /f %i in ( ' dir /b' ) do @set i=%~ni & cmd /v:on /c echo !i:hoge=fuga!
fuga1
fuga2
fuga3
コピー
となってしまうんですが、スペース付の文字列を扱うことはできますか!
for /f "delims=" %i
>>129 ありがとうございます。
もう完璧です!
質問させてください。 UNIXでのバッククオート(プログラムを実行して、その結果を引数として渡す)と同じ機能を有するWindowsのコマンドはありますでしょうか?? ご教示いただけると幸いです。
for /fでがんがれ。
使えbackq for /f "usebackq" %i in (`dir`) do
バッククオータを何のために使うのかわからない馬鹿がまた現れた
back quarter ?
>>134 そうだったのか!
俺も前からなんでみんなわざわざusebackqしてるのか不思議だったんだけど
perlとかunixのまねしてたんだ!
それ quarter back だろw
138 :
名無し~3.EXE :2008/09/30(火) 21:43:46 ID:egGzA/Ra
以下のようなバッチファイルをつくりたいのですが、どうすればいいでしょうか。 1,カレントディレクトリ内を検索して、日付で検索 2,その日付別に日付別フォルダーへ移動 具体的には、 2008年1月1日に更新されたファイルを探し出し、フォルダ20080101へ移動 2008年1月2日に更新されたファイルを探し出し、フォルダ20080102へ移動 というようなことをしたいです。 フォルダはあらかじめ作ってあります。 よろしくお願いします。
質問スレじゃない。
>>1 > 質問も歓迎だけど、自分で調べて勉強する努力も忘れずに。
らしいけど.
虫の居所が悪かったのかw
努力の跡をみて、偉そうに添削したいとかw
xcopy
for/? if/? move/?
>140 更新日付けでフォルダに分類はそんな難しいことじゃない。
動作未確認、添削してくれ。 for %f in (*) do ( set x=20%~tf set y=%x:~0,10% set z=%y:/=% move "%f" %z% ) ただ、個人的には一週間たつと見ても何のためのバッチかわからんようになるから、 wsh + vbs で作ったほうがいいと思う。
setlocal enabledelayedexpnasion % % -> ! !
setlocal enabledelayedexpansion for %%i in (*) do ( if %%i neq %~nx0 ( set x=%%~ti set y=!x:~0,10! set z=!y:/=! if not exist !z!\nul md !z! move %%i !z! ) )
ここは復活の呪文を晒すスレですね。分かります。
>>147 いつまで黴臭いギャグにしがみついてんだよアホ
>148 若いのにお疲れなんでよ可哀想に。 晴れ渡った秋空の下、恋人とドライブでも楽しめればいいのに。 とはいっても、 cmd.exeで、 for ・・・ なんて、苦心惨憺しているのを見ると、 command.comでruby走らせてイテレータでやっつければと思ったりするんだよw cmd.exeでも、同じことができるけど、command.comでなにすると、化石ツールのVZが使えて、格好よくあれできるんだよw
>149 そこを敢えてバッチでやるのが浪漫
VZマクロの浪漫は絶滅の危機にに瀕している、MSていけず。
ランダムなファイル名で大量に保存されたファイルを テキストファイルに記述された順に連番でリネームするには どうしたら良いんでしょうか? エクセルで ren 元ファイル名9 001.txt ren 元ファイル名5 002.txt ren 元ファイル名7 003.txt . . . みたいにバッチファイル作る方法は可能なんですが そのバッチを作る手間を省く方法を探してます テキストに記述されたファイル名の並び順を読み込んで 勝手に連番付けるのは可能でしょうか? 並び順の定義ファイルは下記のような形式で記述されています 半角英数のみのランダムで文字数はバラバラ ハイフンやアンダーバー、スペースなど記号はありません a0b5c9dfjhsdo.txt gh99i5safa45.txt d0ef74lmndpbjdpflg.txt . . .
for/?
154 :
152 :2008/10/16(木) 15:54:42 ID:vKinCOAN
>>153 レスどもっす
プロンプトのヘルプだけではいまいち使い方が判らん
dosの基礎から出直してこようとおもうんだが
どこかお勧めの解説サイトとかあったらお願いします
>>154 [スタート]→[ヘルプとサポート]→「コマンドライン」で検索→「作業を選びます」の「コマンドライン リファレンス」
156 :
152 :2008/10/16(木) 16:44:55 ID:vKinCOAN
>>155 ありがと
今まで見聞きした中途半端な状態で使ってたから
ここらで本腰入れて勉強してくる
XPをインストールしたいのですがちょっと困っています
CDドライブとFDDがないためHDDにインストールディスクの中身をコピーしました
USBメモリにMEの起動ディスクを入れてDOSを起動します
USBメモリはAドライブです
cdコマンドでHDD(Cドライブ)へ移動しようとするもうまくいきません
英語配列のキーボードのため以下の\はバックスラッシュの代わりです
cd c:\
a:\>
となり何も起こりません
cd /d c:\
Invalid switch - /D
a:\>
となりパラメータが認識されていないみたいです
dir c:\
でHDDの中身が確認できるのでHDDは認識できているはずです
起動ディスクは以下を参考に作りました
http://memorva.jp/internet/pc/dos_usb.php XPの質問すれから誘導されました
コマンドラインの動きがさっぱり理解できません
何が原因なのでしょうか
158 :
157 :2008/10/16(木) 17:50:12 ID:xmLbLyo8
追加ですが cd c: c:\ a:\> です
>158 c:
>>158 あっちでちゃんとレスしただろ。
「c:」て書いてあるのに、どうして勝手に「cd」を付け足して「cd c:」にするんだよ。
>>152 for で定義ファイルから一行づつ読み込むのはいいんだけど、
連番をどこから調達してくればいいのか俺にはわからん。
その目的だと俺は使い慣れているGREPとSEDで
ren 元ファイル名9 001.txt
ren 元ファイル名5 002.txt
ren 元ファイル名7 003.txt
.
.
.
のバッチファイルを作るな・・・
set/? set/a 連番+=1
>>160 >>163 バックスラッシュを外せって意味だと勘違いしました
なんとか次へ進めそうです
ありがとうございました
>>161 ヒント:
カウンタ回しながらif existで検索すればokかと。
もちろん、欠番を記憶して穴埋めする必要があるが。
つか、連番リネームツールってフリーであるよな...。
X:\test>dir /b /s X:\test\a X:\test\b X:\test\a\b X:\test\a\b\b1.txt X:\test\a\b\b2.txt X:\test\a\b\c X:\test\a\b\c\c1.txt こういう構成で\test\aの中のbフォルダを、 \test\bに上書きしようと思ったら、 X:\test>move /y a\b アクセスが拒否されました。 となるんですが、どうしたらいいでしょうか?
よくわからんが、move /y a\b b じゃダメなんか?
>>167 > move /y a\b b
だと、\test\b\bに移動されてしまうんです
\test\bの中身は消さずに、\test\a\bで上書きしたい
ということで、詳細が後出しですみません
move /y a\b\*.* b かな?
BATファイルでプログラムを複数起動したいのですが、どのように記述すれば いいでしょうか? 実行するプログラムをそのまま書き連ねても、最初のプログラムが実行された あとDOS窓が表示されたままになります。
>>168 それは表現が悪いよ。
> こういう構成で\test\aの中のbフォルダを、
> \test\bに上書きしようと思ったら、
これじゃ test\b\b にしたいということになる。
やりたいことは test\a\b を test に上書きだろ。
でもmoveじゃディレクトリの上書きができないからアクセス拒否される。
次善策としては test\a\b の中身を test\b に移動した後、test\a\b の削除じゃないか。
173 :
名無し~3.EXE :2008/10/22(水) 17:29:26 ID:e7bZE7k0
ネットワーク関係について質問させてください 現在、コマンドプロンプトでPCの回線速度を取得する方法を調べています GUIを使った場合はネットワーク接続の各接続をダブルクリックしてローカル接続の状態ダイアログの全般タブの速度を見ればよいことはわかりました しかし、コマンドプロンプトで同様の値をとる方法がわかりません netstatなども調べましたがいまいちわかりません アドバイスよろしくお願いいたします
explorer shell:connectionsfolder
175 :
168 :2008/10/23(木) 01:06:55 ID:2lEHvi+l
>>169 ,171
分かりにくい書き方ですみませんでした
中身のコピーと元の削除をするように書いてみます
ありがとうございました
176 :
名無し~3.EXE :2008/10/24(金) 14:06:45 ID:txifo4gO
>>174 回答ありがとうございます
しかしながら、知りたいのはexplorerを立ち上げる方法ではなく数値を取得する方法です
コマンドプロンプトで回線速度を数値で取得する方法をご存知でしたら、ご教示願います
よろしくおねがいいたします
>>176 netsh interface ip show interface
178 :
名無し~3.EXE :2008/10/25(土) 04:06:42 ID:aKsS+qaH
回線速度=リンク速度 のつもりで聞いてるような気もしなくもない。 コマンドラインでの取得方法は知らんけど。
180 :
名無し~3.EXE :2008/10/25(土) 07:03:25 ID:jO3zlNh+
そうか?よっぽど読解力無いね君 コマンドプロンプトでインターネット通信速度を知りたいとしか読めないが
読解力など必要ないだろう。
リンク速度かスループットか、そんなのは本人の問題であってこっちが考えることじゃないね。
>>173 で書いているのは明らかにリンク速度なわけだから、ストレートにリンク速度を
答えるべきだが…リンク速度をコマンドプロンプトで取得する方法はわからん。
182 :
名無し~3.EXE :2008/10/25(土) 13:31:31 ID:jO3zlNh+
誤読男が辻褄合わせようと見苦しいよね(´・ω・`) LANリンク速度のことなら取得も何も無いだろ 設備を変えない限り変わらないんだから これでいいじゃん echo 100Mbps 常識で考えてこれのことだとはとても思えない ネットの回線速度のことだろ
最近はオンボでもGbitだし、スイッチングHUBもGbit対応のが普通に 買えるから「1.0 Gbps」だったりする事もある。自宅で実行するだけ なら決め打ちでもいいけど、そうとは書かれていない。 ま、どっちの事かちゃんと書かない質問者が悪いが、勝手に誤読と 決めつけるおまいさんも痛いねw
185 :
名無し~3.EXE :2008/10/25(土) 14:36:12 ID:jO3zlNh+
>>184 馬鹿はお前だよ
本人の問題であってこっちが考えることじゃないってww
ここは質問者の奴隷スレじゃない。頭にウジが湧いてるんじゃないのかww
辻褄が合わない点をただし確認する作業は当然のことだ
173、176で回線速度という言葉しか使ってない。リンク速度とは質問者は一言も書いてないわけだが
リンク速度は178がこうじゃないかと推理してるだけで、その推理は正しいと思うが
結局知りたいのは回線速度としか書いてない以上
回線速度なの?リンク速度なの?と疑問を持つのは当然だ
リンク速度に決まってる
ガタガタ言う必要ないそれで答えたらいいだけだなんてのが暴論
>>185 スループットとも書いていないわけだが?
判断する材料となりうるのは
> ローカル接続の状態ダイアログの全般タブの速度を見ればよい
ここだろ。ここを見てスループットと判断できる超馬鹿?
それに
> これでいいじゃん
> echo 100Mbps
ありえねぇ。ありえねぇよお前w
天然記念物ものの馬鹿だなw
187 :
名無し~3.EXE :2008/10/25(土) 15:39:55 ID:jO3zlNh+
>リンク速度かスループットか、そんなのは本人の問題であってこっちが考えることじゃないね (´・ω・`)こんなキチガイ相手するだけ無駄だな
参考までに、光ケーブルは配線が余りにも小さな弧を描くようだとロスが発生し実効速度が出なくなる。 ケーブルがかくっと曲るとだめということだ。
189 :
名無し~3.EXE :2008/10/25(土) 19:47:40 ID:CKAOgFIn
ぬ
190 :
名無し~3.EXE :2008/10/26(日) 03:37:12 ID:oz/BhzYZ
負けず嫌いが3人いることはわかった
@cls
>>190 jO3zlNh+ が暴れてるだけだろ?
>>188 銅線のLANでも折り曲げると障害の原因になる。
曲げ半径はケーブルの直径の6倍以上。
質問です。現在setコマンドに/pオプションをつけてユーザーの入力を 取得するバッチを使っているのですが、これを一歩進めてユーザーが 入力する前にあらかじめテンプレートを表示させておくような方法はありますでしょうか? 例えばhogehogeというテンプレートをあらかじめ設定しておき、setの入力待ち状態の 時にこのhogehogeを表示しておきます。このままEnterを押せばそのまま hogehogeが取得され、もしユーザー側がこのテンプレートを任意に編集 例えばhoge_test_hogeのように編集を施した後Enterを押すと編集後の hoge_test_hogeを取得できるといった具合です。 つまりあらかじめ設定しておいたテンプレートが途中まで入力済みである状態が望ましいのです。 何か方法がありましたらぜひ教えてください、よろしくお願いします。
>>195 ありがとうございます!希望通りの動作に出来ました。
197 :
名無し~3.EXE :2008/10/28(火) 05:52:03 ID:WYNhYoax
また吉岡照雄 か この人何者なんだろう たいがいの事はこの人のライブラリで解決できるな
198 :
152 :2008/10/28(火) 15:48:09 ID:DkSox2ia
あれから試行錯誤を繰り返して 下記のようなバッチを作ったのだが 無限ループに陥ってしまう ctl+Cでバッチを強制停止すると リネーム処理自体は完了してますが… バッチ終了処理へ渡すには総ファイル数を変数にして 2回目のforのsetに組み込むんだろうと推測したけど そうすると桁数の処理のif文処理を どうしたらいいかわからない @echo off SETLOCAL ENABLEDELAYEDEXPANSION set TXT=%~1 for /f %%f in (%TXT%) do ( for /l %%c in (1,1,999) do ( if %%c leq 999 set COUNT_STR=%%c if %%c leq 99 set COUNT_STR=0%%c if %%c leq 9 set COUNT_STR=00%%c ren %%f !COUNT_STR!.* ) ) goto :END :END echo リネーム完了。 pause endlocal @echo on アドバイス頼みます
199 :
152 :2008/10/28(火) 16:19:17 ID:qDfP8whI
ちなみに前段階でこんなのもつくったんだけど
dos窓内で"ファイルが見つかりません"という結果行が
大量に吐き出されて見苦しいので
>>198 のような形式に書き換えました
一応こちらはバッチ終了処理まで動作は通ってます
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set TXT=%~1
set COUNT=1
:START
set COUNT_STR=%COUNT%
if %COUNT% LEQ 999 set COUNT_STR=0%COUNT%
if %COUNT% LEQ 99 set COUNT_STR=00%COUNT%
if %COUNT% LEQ 9 set COUNT_STR=000%COUNT%
for /f %%f in (%TXT%) do (
ren %%f %COUNT_STR%.*
)
set /a COUNT=%COUNT%+1
shift
if exist %COUNT_STR%.* goto :START else goto :END
:END
set /a COUNT=%COUNT%-2
echo !COUNT!個のリネーム完了。
pause
endlocal
@echo on
200 :
152 :2008/10/28(火) 16:42:01 ID:qDfP8whI
えーと、いまいち何をしたいのかよくわからんのだけど @echo off setlocal enabledelayedexpansion set c=1 for /f %%i in (%~1) do ( if !c! leq 9 ( set s=00!c! ) else ( if !c! leq 99 ( set s=0!c! ) else ( set s=!c! ) ) ren %%i !s!.* set /a c+=1 ) こんなんじゃ駄目なん?
@echo off setlocal enabledelayedexpansion set c=1 for /f %%i in (%~1) do ( set s=00!c! set s=!s:~-3! ren %%i !s!.* set /a c+=1 ) というかifで分岐しなくてもこれでよかったかな。
sに2回も代入する必要なかったか。
@echo off setlocal enabledelayedexpansion set c=1 for /f %%i in (%~1) do ( set s=00!c! if exist %%i ( ren %%i !s:~-3!.* set /a c+=1 ) ) ファイルの存在確認が必要(番号を飛ばさない)ならこれで。 renban.bat listfile みたいな感じで使うもんだと思ってたけど、違ったかな?
sに1回も代入する必要なかったよ。 @echo off setlocal enabledelayedexpansion set c=1000 for /f %%i in (%~1) do ( set /a c+=1 ren %%i !c:~-3!.* )
おおう。そういう手があったか。
>>201-206 とりあえず205で試したところ理想の動作できました
201,202,204も合わせて確認してもうちょっと勉強してみます
ありがとうございました
208 :
名無し~3.EXE :2008/10/29(水) 14:57:19 ID:AOAWbW23
すみません 全くの素人ですが コマンドラインの使い方教えてください skypeを使ってますが起動するとウィンドウが開いちゃうのがイヤで 最小化で起動できないかと調べたらコマンドラインでって書いてあったので是非やり方、設定の仕方を知りたいんです よろしくお願いします
help/?
210 :
名無し~3.EXE :2008/10/29(水) 15:33:44 ID:AOAWbW23
はいすみませんヘルプです 本当にやり方をしりたいんです お願いします
なんかすごい勘違いしてるっぽいが、コマンドラインってのはソフトの名前じゃないよ。
手段の名前だから。
>>209 が書いてるのは「ヘルプか?」という問いじゃなくて
そのまんま「help/?」というコマンドだよ。
212 :
名無し~3.EXE :2008/10/29(水) 15:54:46 ID:AOAWbW23
勘違いかどうかもわかっておりませんが… /なんたら〜 ってのをどうにかすればskypeを立ち上げたときに変わるんですよね そのコマンドラインのやり方を知りたいんです skypeのアイコンを右クリックしてプロパティをクリックして プログラムのリンク先のとこの最後に /なんたら〜 をつけてみたりとかしたんですけど どうやらとんちんかんだったようで…
>212 skypeの起動オプションのことまで知るか skype 起動オプション あたりでぐぐってみれ
start /min skype
ショートカットがあるんだからそこで設定すればいい話。コマンド必要なし。
216 :
名無し~3.EXE :2008/10/29(水) 20:02:15 ID:AOAWbW23
ショートカットでの設定ってのはどうすればできますか?
shortcut.exe /?
218 :
名無し~3.EXE :2008/10/29(水) 21:59:10 ID:AOAWbW23
ショートカットのプロパティで 最小化で起動ですとタスクバー化されて起動しちゃうんです タスクバーにしないで起動させたいのです
スカイプなんてしゃれたモン使ってるやつはこのスレにはいないから よそ行ったほうがいいよ。
221 :
名無し~3.EXE :2008/10/29(水) 23:52:23 ID:AOAWbW23
ショートカットアイコンのプロパティのリンク先のとこですよね もちろん/minimizedっていれてみました でもダメでした
cmdow /run /hid scype
223 :
名無し~3.EXE :2008/10/30(木) 13:01:07 ID:Y1r5GzAE
例えば ipconfig /all >IPconfig.txt for /F "tokens=1* delims=" %i in ('ipconfig /all') do @(echo.%i)>>IPconfig.txtな感じでtxtを作ると 行末の改行が変な感じで勝手に展開されたようになるでしょ 〜 改行コードがおかしくなるからエディタによって見え方が違ってくるけどsakuraで見た場合とメモ帳で見た場合とか >ipconfig /allでコマンドプロンプト上で見るのとは違ったTXTファイルが出力してしまう そこでWSH(VBScript)のRegExpでこのTXTファイルをさらに処理させて 改行コード\r\nを統一したりかってに出来た改行だけの行を削除するようにやってるけど これをコマンドプロンプトの内容を工夫することによってこの置換処理を不必要にする、てことは無理ですか? 〜 なぜかというとコマンドラインだけで処理を組まないとBATにしづらいため 物知り博士の人でも無理かな 「>」でつくったTXTファイルの宿命ですか?
224 :
名無し~3.EXE :2008/10/30(木) 13:28:12 ID:Y1r5GzAE
補足で)コマンドラインで置換処理をするという意味じゃなくて 改行が変にならないような工夫が可能かどうかという質問です
>>223 type IPconfig.txt
とやってみればわかるように、
> ipconfig /allでコマンドプロンプト上で見るのとは違ったTXTファイルが出力してしまう
というわけではない。真正に同じものが出力されているが、表示方式が違う
ソフトで見ているから違って見えるという話。
テキストエディタで同じような見た目で欲しいなら、改行コード以外のものをechoで出力した for /f "delims=" %i in ('ipconfig /all') do @(echo.%i|findstr ".*") >>IPconfit.txt こんなのでどうかね。
IPconfit.txt → IPconfig.txt
unix2dos.exe
dos2unix.exeを2回
230 :
223 :2008/10/30(木) 16:58:03 ID:1QchZ3SQ
重くないかい? for /f "delims=" %i in ('ipconfig /all') do @( (set hoge=%i) & (call echo.%%hoge:~0,-1%%) ) >>IPconfit.txt
>>231 そんなことできるんだ。知らなかった。
> call echo.%%hoge:~0,-1%%
ここの部分は
call echo.%hoge:~0,-1%
だと思うんだけど、これコマンドプロンプト上から実行すると1回目は動くけど2回目はまともな動作しないな。
コマンド実行前にhogeが空かどうかが分かれ目みたいだけど、
どうしてこうなるのか誰か解説きぼんぬ。
なんでそう思ったんだ? わかんないなら素直に遅延展開してろよ。
>>233 > なんでそう思ったんだ?
「そう」とはどの部分を指しての話?
ちなみに俺は223じゃないからコマンドの必要性に関してはどうでもいい。
2回目はまともな動作をしない、というのは実際に試しての話。
>>231 のをそのまま実行すると
こんなのが出力されてるね。
%%
%Windows IP Configuration%
%%
…中略…
% DNS Servers . . . . . . . . . . . : 192.168.1.1%
2回目以降は全て最後の行と同じものが出力される。
% DNS Servers . . . . . . . . . . . : 192.168.1.1%
% DNS Servers . . . . . . . . . . . : 192.168.1.1%
…中略…
% DNS Servers . . . . . . . . . . . : 192.168.1.1%
set hoge=
してからだと1回目と同じ。
この動作の違いがよくわからんのだが。
ああ、すまん。231ってまともに動かんのか。 batのなかで for /f "delims=" %%i in ('ipconfig /all') do @( (set hoge=%%i) & (call echo.%%hoge:~0,-1%%) )>>IPconfit.txt ってのがやりたかったんだろう コマンドラインじゃ %% が % に変換されないし hogeが無いときは %hoge% がそのままで変換されない。 んで、未変換の %hoge% が call 時に展開されてる。 昔のDOSはコマンドラインで変数展開する機能なんて無かったから、そのへんはお察しください。
>>236 いや、問題はそこではなくて、その問題は
> > call echo.%%hoge:~0,-1%%
> ここの部分は
> call echo.%hoge:~0,-1%
for /f "delims=" %i in ('ipconfig /all') do @( (set hoge=%i) & (call echo.%hoge:~0,-1%) ) >>IPconfig.txt
これで解決してるんだよ。
俺の疑問点は、コマンド実行前にhogeに文字列が入っていると動作がおかしくなるのはなぜかというところ。
ちなみに set hoge=abcde とやった後に上記コマンド実行すると、出力結果は
abcd
abcd
…
abcd
となり、直後にecho %hoge% とやると 「DNS Server…」というのが入っているわけ。
この辺の動作がよくわからん。
参考 set hoge= ( echo %hoge% set hoge=aaa echo %hoge% call echo %hoge% )
結果 %hoge% %hoge% aaa
>>238 バッチファイルにての実行結果
ECHO は <ON> です。
ECHO は <ON> です。
ECHO は <ON> です。
…実行環境の違いか?
プロンプト上で (set hoge=) & (echo %hoge% & set hoge=aaa & echo %hoge% & call echo %hoge% ) の実行結果 aaa aaa aaa
>>241 は間違い。偶然だが事前にhogeにaaaが入っていた…
set hoge=[enter]
(set hoge=) & (echo %hoge% & set hoge=aaa & echo %hoge% & call echo %hoge% )[enter]
echo hoge=%hoge%[enter]
とやったときの実行結果
%hoge%
%hoge%
aaa
hoge=aaa
これはいい。
しかし、
set hoge=abc[enter]
(set hoge=) & (echo %hoge% & set hoge=aaa & echo %hoge% & call echo %hoge% )[enter]
echo hoge=%hoge%[enter]
とやったときは
abc
abc
abc
hoge=aaa
となるんだ…頭が混乱する。
243 :
223 :2008/10/31(金) 23:30:15 ID:v8oHKxHZ
>>231 これはすばらしい
思いっきり早くなりました<m(__)m>
226方式
for /f "delims=" %i in ('ipconfig /all') do @(echo.%i|findstr ".*")
231方式
for /f "delims=" %i in ('ipconfig /all') do @( (set hoge=%i) & (call echo.!hoge:~0,-1!) )
混乱ついでに set hoge=改行 for /f "delims=" %i in ('ipconfig /all') do @( (set hoge=%i) & (call echo.%hoge%) ) >>IPconfit.txt
245 :
223 :2008/11/01(土) 00:04:26 ID:DrfpE3LK
改行コードの調整だけなら置換は必要じゃなくこれでいいのか for /f "delims=" %i in ('ipconfig /all') do @( (set hoge=%i) & (call echo.!hoge!) )>>IPconfig.txt すばらしい<(_ _)>
>>237 なんで「遅延展開」なんて奇妙な機能があるのか知ってる?
標準だと「先行展開」しちゃうからだよ。
set hoge=ABCD の場合
for /f "delims=" %i in ('ipconfig /all') do @( (set hoge=%i) & (call echo.%hoge:~0,-1%) ) >>IPconfig.txt
は
for /f "delims=" %i in ('ipconfig /all') do @( (set hoge=%i) & (call echo.ABC) ) >>IPconfig.txt
という風に展開された後実行されるから
(set hoge=%i) & (call echo.ABC) が繰り返し実行されるだけ。
hogeが無い場合は展開されずにそのままだから
(set hoge=%i) & (call echo.%hoge:~0,-1%) が繰り返し実行されてうまくいく。
ちなみにbatの場合
(set hoge=%i) & (call echo.) が繰り返し実行される。
さらに混乱させそうだが for /f "delims=" %i in ('ipconfig /all') do @call echo.%i >>IPconfit.txt
改行のほうでしたか。 vistaだと ipconfig>aaa.txt でもともと全部CRLFになってるんだ。
>>246 いや、疑問点は遅延・先行展開の部分ではなく、
> hogeが無い場合は展開されずにそのままだから
この部分なんだ。
バッチで実行された場合、無い変数は空文字として展開される。
これがコマンドプロンプトの場合は展開されず、文字列として扱われる。
この辺のダブルスタンダードのようなところがわからんのよ。
お察しください。
for %i in (*.*) do echo %i で %i in (*.*) do echo % が宣言されていなかった場合どうなるか?
逆に聞きたい。 間にスペース等変数として使えない文字が入っているものを変数として認識するようなことがあるのかと。
使えるから困るw >set i in (*.*) do echo =aaa >for %i in (*.*) do echo %i aaai の使い方が誤っています。
Windows版からきました コマンドの、schtasks /create でローカルコンピュータでもパスワード入力を省略する事が方法がありますでしょうか? リモートなら、 schtasks /create /tn "task01" /tr "test01.bat" /sc once /s "pc-name" /u "USERNAME" /p "userpass" 見たいな形式でOKでしょうけど、/s オプションはリモート相手のみで有効みたいですね。ローカルでもパスワードを対話形式 で入力しないでいい方法をお教え下さいませ。 schtasks コマンド自身をバッチ内で利用したいと思っています。
for %i for %%i シンタクスを変えるのはやめてくれー>MS
今、可逆オーディオ圧縮の相互変換バッチを作っていて、基本的な部分は大丈夫なんだけど、 ファイル名の引き渡しでトラブってます。 具体的には 種別振り分けバッチ→変換まとめバッチ→EXE叩き用バッチ というような感じでCALLしていて、各バッチ間は引数に %1 を付けています。 で、問題になっているのが 「100%.wav」みたいな"%"が入るファイル。 これを渡すと2つめのバッチでファイル名の"%"が消えて「100 .wav」という感じになってます。 要約すると、 多重call時のファイル名の"%"ってどうやって引き渡せば良いのでしょうか?
バッチでやるならそんなファイル名を使わない 使うならWSHでやる
>>260 根本的に無理なの?
知らないから無理ってことじゃないよね?
%1 %%1
その発想はないな
その文字列置換はどーやればいいのさ
文字列置換? CALL変数でなくFOR変数を使えじゃないの?
あれ? "%1"という文字列を渡すから、呼び先で本来の"%1"の中身が展開されていい感じに処理出来た と解釈したんだが、何か認識間違いある? まあ、強引に渡してるからcallが深くなると修正量も多くなるがね。 てか、引数にしないでグローバル変数的に"%1"を使えば良いのか? そういう使い方は可能?
CALLは構文解析が2回通るから、2回目に展開するようにしてるのね
パッチでApplication Dataフォルダのパスを取得したいですけどどうすればいいでしょうか
echo %APPDATA%
ここにいる人達ってコマンドラインで使えるツール類に明るそうだから聞いちゃうけど 無線LANのON/OFFとか接続先切り替えができるコマンドラインツールってある? 一応一通り探してみたんだけど、コマンドラインで使えるどころかAirStation限定の ClientManagerとかThinkPad付属のAccessConnectionとかメーカー限定ものが多いし もしかして仕組み的に汎用のものは難しかったりするのかな?とか思いつつ、どうも 無線LANの切り替えだけマウス操作とか使い勝手悪過ぎて諦めきれない。
cmd.exeって、shよりタコなんだろうw
なぜユニ糞と比べる必要が?
Winドブから抜けださにゃ。
X-Finder とか PPX クラスのファイラと TTBase があれば考えるが…
>>278 偉そうに構えず自分で持ち寄って参上しろ。
ダメなら、威張るなw
>>274 何も追加せずにやるならWSH使ってshell.aplicationからコントロールパネル取得して有効無効にするやり方が前スレに載ってる
devcon.exe使ったほうが楽だけど
>>279 むしゃくしゃした日はブックオフに行く
そして本棚の陰に隠れてでかい声で「いらっしゃいませー!!」と叫ぶと、
フロアにいる店員が一斉に「いらっしゃいませー!」とつられて言う
これを2、3回繰り返し、気が済んだとこで店を出る
>280 レスさんくす。 devconは余りよく理解しないままで使ってるけど できるのは無線LANのON/OFFだけだよね? 接続先切り替えとかまでできる統合ツール的なのを 探してたんだけど、やっぱないのかな。 ともかくありがとう。
283 :
名無し~3.EXE :2008/11/15(土) 17:17:44 ID:EO92bu8F
batファイルにファイルをドラッグ&ドロップしたとき、引数(ファイル名)が取得できません
これがやりたい
http://www5c.biglobe.ne.jp/~yagirola/ms-dos/FileName.html c:\にtest.batを作ってエクスプローラからドラッグ&ドロップしても空nullが渡されるだけ
-----test.bat----
@echo off
echo %1
--------------
ドラッグ&ドロップするファイルの方もc:\上のものでtest.txtでファイル名に日本語・空白・記号などは無し
コマンドプロンプト窓を先に立ち上げておいて
>c:\test.bat c:\test.txt
とやるとちゃんと 「c:\test.txt」を表示します
コマンドプロンプト窓がすぐ閉じないように念のためPauseも付けました
ドラッグ&ドロップの時だけ引数が取れません
どこか設定が悪いのでしょうか?
XPsp2
-----test.bat---- @echo off echo %1 pause -------------- -----test.bat---- echo %1 -------------- -----test.bat---- echo %1 pause -------------- この3つもダメです
バッチじゃなくて他のアプリにD&Dした時の動作はどうなんだ?
test.cmdにしてみたら
>>285 他のアプリ等まったく異常はないです
283の実験の場合だけ引数(この場合はD&Dしたファイル名)が取れないだけです
取れないファイルはすべてのファイルです
>>296 これはOKでした
ネットで調べたらここに
http://q.hatena.ne.jp/1177392119 上手く引数が渡せないときのvbsを使った迂回方法
CreateObject("WScript.Shell").Run "cmd /C c:\test.bat """ & WScript.Arguments.Item(0) & """"
があったのでこれもやってみたが、これもOKでした
原因が良くわからないが296の方法かこの方法でとりあえず我慢します
レジストリに登録されてないんじゃない HCL>batfile>shell>open>command>標準 "%1" %*
>>290 原因はコレでした。インストールした別のフリーソフトに書き換えられていました。
直りました。
for /f %k in ('type demo.txt') do echo.%k を利用して 先頭1行だけ表示したら終わる他行は表示しないが上手く働きません set c=1 for /f %i in ('type demo.txt') do @( if not c==1 echo.この行はパス if c==1 (echo.%i & set /a c+=1) ) set c=1 for /F %i in ('type demo.txt') do @( if not c==1 (echo.この行パス) else (set /a c+=1 & echo.%i) ) パスはするけど、肝心の一行目が
set /p x= < demo.txt echo;%x%
set c=1 if not c==1 echo.常に真 if c==1 echo.常に偽
296 :
293 :2008/11/16(日) 18:27:01 ID:6ouSBHa9
>>294 わざわざ書いてもらって大変有り難いですが
構文のどこが間違ってるかを知りたいのが質問の趣旨で
先頭行表示というは単に例で書いてるだけです
誤解されるような書き方をしてすみません
297 :
293 :2008/11/16(日) 18:29:50 ID:6ouSBHa9
あっ
>>295 を見てなかった
見ても意味が良くわから
c=1なのになんで常に真が表示されるのか わけわからん if文は触らないほうがいいようですね
c=c 1=1 not c=1
300 :
293 :2008/11/16(日) 19:01:03 ID:6ouSBHa9
%が抜かってるのか でもそれをつけても正しく動かない set c=1 for /f %i in ('type demo.txt') do @( if not %c%==1 (echo.この行パス) if %c%==1 (echo.%i & set /a c+=1) ) set c=1 for /F %i in ('type demo.txt') do @( if not %c%==1 (echo.この行パス) else (set /a c+=1 & echo.%i) ) if文は諦めました
>>293 cが変数として使われてないのは書き間違いか素で間違えてるのかどっち?
書き間違える前は遅延展開してるの?
typeは要らないんじゃないの?
>>300 if not %c%==1 (echo.この行パス %c%) else (set /a c+=1 & echo.%i %c%)
こんな風にしてみればなぜおかしいのかわかるお。
303 :
293 :2008/11/16(日) 19:21:25 ID:6ouSBHa9
こうか @echo off setlocal enabledelayedexpansion set c=1 for /f %i in ('type demo.txt') do ( if not !c!==1 rem パス if !c!==1 (echo.%i & set /a c+=1) ) 変なゴミはつくけど近い線までは行った
304 :
293 :2008/11/16(日) 19:34:34 ID:6ouSBHa9
バッチファイル化したら良い感じになりました @echo off setlocal enabledelayedexpansion rem 簡易「先頭行表示」bat set c=1 for /f %%i in ('type "%~1"') do ( if not !c!==1 rem パス if !c!==1 (echo.%%i & set /a c+=1) ) pause ソロートだからこれでよしとします
ソロートじゃなくシロートですorz
306 :
293 :2008/11/16(日) 20:02:33 ID:6ouSBHa9
cが2になったらさっさとjumpさせたほうがいいのか @echo off setlocal enabledelayedexpansion rem 簡易「先頭行表示」bat rem 〜 スペースやtab以降は表示出来ない 〜 set c=1 for /f %%i in ('type "%~1"') do ( if not !c!==1 goto jump if !c!==1 (echo.%%i & set /a c+=1) ) :jump pause これで完成とします ご協力ありがとうございました
>>306 1回で終わりなら条件分岐なんか必要ないんだから
forの中にgoto書けばいいだけだと思うけどね。
typeも要らんし。
@echo off
setlocal enabledelayedexpansion
rem 簡易「先頭行表示」bat
rem 〜 スペースやtab以降も表示出来る 〜
for /f "delims=" %%i in (%~1) do (
echo %%i
goto jump
)
:jump
pause
(%~1)はマズイ
先頭行が WSH(・∀・)スレッド! Part 3 だと化けるw
各種記号が入ってるのも
>>294 使えばほぼ完璧
@echo off
set /p x= <%1
echo;%x%
pause
また、展開の副文字列を指定することもできます。 %PATH:~10,5% は、PATH 環境変数を展開し、展開結果の 11 番目 (オフセット 10) の文字 から始まる 5 文字だけを使います。長さが指定されなかった場合は、変数の 値の残りの長さを既定値とします。オフセットまたは長さのどちらかが負の値 の場合、環境変数の値の長さに指定されたオフセットまたは長さを足してその 数を使います。 %PATH:~-10% は、パス変数の最後の10 文字が展開されます。 %PATH:~0,-2% は最後の 2 文字以外のすべてが展開されます。 "「前3文字と後3文字」以外のすべてを展開"というのはどうやればいいですか?
読み返したらひらめきました
ひらめく?
何行か文字列があるTXTファイル ---TXTファイル 12345 abcdef あいうえお ・・・・・ の各行の左からN文字目とN+1文字目の間に文字列を挿入することは出来ますか? ---挿入後TXTファイル(N=3の時) 123文字列45 abc文字列def あいう文字列えお ・・・・・
自己解決しました
何行かある文章をsort /rさせるときfind /n /v ""のパイプ渡しのものとかでやった場合 0埋めされてない[9]とかの数字だからsort /rしたときにキレイな逆順が出来ずに使い物にならなくて困っています これは何か工夫の余地がありますか、それともお手上げで他の手段を考えたらいいのですか アドバイスをお願いします キレイなsort /rが出来るまったく別手段でも構いません
[n]を取り出して m=10000+n [m]に振り直す
>>319 やっぱりプロの先生方でもそういう方法なんですか。アドバイスありがとうございます。
ちょっとやってみます
>318 JScript/VBScriptでツール作るか、 スクリプト言語をインスコしてワンライナー書いた方が早い気がする。 (318ならawk程度で簡単に片付くし…)
reverse.cmdを見ると SORT /+10000 で逆順になるらし
323 :
318 :2008/11/21(金) 13:42:43 ID:1nDnnHGB
| ̄ ̄ ̄|| ̄ ̄ ̄|\
| || |\|
| ̄ ̄ ̄ ||  ̄ ̄ ̄|\
| .○ヽ || / ○ .|\|
┏┓ ┏━━┓ |____. ヽ---||---/ ..___|\| ┏━┓
┏━┛┗━┓┃┏┓┃ \\\| ヽ || / |\\\\.| ┃ ┃
┗━┓┏━┛┃┗┛┃┏━  ̄ ̄l ヽ ||. / .|\| ̄ ̄ ̄ .━━━━━━┓┃ ┃
┏━┛┗━┓┃┏┓┃┃ | ̄ ̄ ̄ ヽ||/ || ̄ ̄ ̄|\. ┃┃ ┃
┗━┓┏━┛┗┛┃┃┗━| || .|| |\|━━━━━━┛┗━┛
┃┃ ┃┃ |___ || .|| |\| ┏━┓
┗┛ ┗┛ \\\| || |\| ┗━┛
 ̄ ̄| || |\|
|___||______,,|\|
\\\ \\\\\\\\|
>>322 今までやってたのはなんだったのかというくらい一瞬で逆順wwww
>>321 それはインストールしてないので、暇なときに挑戦してみます
10000桁以上あったらどうなるんだろ。
こういうのは「真逆に安定なソート」とでも言うのかな?
>>324 それでソートされるだけだろ
心配なら最大何桁まで指定できるか、試してみれば?
326 :
名無し~3.EXE :2008/11/22(土) 00:34:32 ID:Z64dbLfy
10万行でも20万行でもOKだった 使えるなこの技
行じゃなくて桁だよ
328 :
名無し~3.EXE :2008/11/22(土) 06:20:15 ID:3lzXw59b
>>327 また脳内反応男か
324
325
桁の話を
〜〜〜無関係〜〜〜
326
行の話
突っ込まれたから切れしてるとしか思えん。
つっ込まれたのは327=329だろw
org.txt
01234567890123456789…01234567891
01234567890123456789…01234567893
01234567890123456789…01234567895
01234567890123456789…01234567892
01234567890123456789…01234567894
01234567890123456789…01234567896
20000+1桁のテキストファイルでやってみた。
sort /rec 40000 /+10000 org.txt /o 10000.txt
逆順ではなく普通の昇順ソートになった。
/+20000 →順(123456)
/+20001 →順(123456)
/+20002 →ソートではなく上下入れ替え(642531)
/+20003 →以降20002と同じ
そもそも/+nは逆順じゃない。逆順ソートするには/rが必要。
/r があっても、+nがテキストの桁数を超えていたら上下入れ替えになるだけ。
>>323 は本当に逆順になったのだろうか?
ソートされたテキストを上下入れ替えたから逆順ソートされたように見えてるだけでは…
332 :
名無し~3.EXE :2008/11/22(土) 12:22:18 ID:NCbuhqPv
また変なのがでてきたな
○○男って表現好きだね
sort /+1000000000000000 並べ替え位置は、0 より大きくなければなりません。 実用上、十分だね
「sort /+10000」 てのは10000という数字に特別な意味がわけわけじゃなく あなたが逆順させたいファイルの桁に対して充分大きな数字ていう意味だよね 20001桁のファイルに /+20000を指定したりする人もいるようだが 20001桁のファイルなら /+20002で逆順がはじまる /+20000 →逆順出来ない当たり前 /+20001 →逆順出来ない当たり前 /+20002 →逆順 /+20003 →逆順 ここで言う逆順とはファイルの各行が現在と比較してリバースされるという意味 逆順という言葉を使うのが気に入る気に入らないは各人の受けとり方の違いだから 「順」という言葉は使いたくない人は使わなければいい 「上下入れ替え」が好きな人はその言葉を使えばいい
語義厨がご迷惑を掛けて申し訳ありません(-人-) 単なる発作ですのでもうしばらく我慢してください
「私は 逆順と いう 言葉は 嫌いです」の逆順は 「嫌いです 言葉は いう 逆順と 私は」です。 日本語的に何の問題もないと思うが 「上下入れ替え」だとこういう変換を想像する人もでてくるからなあ 「嫌いです 逆順と いう 言葉は 私は」
重ね重ね語義厨がご迷惑を掛けて申し訳ありません(-人-) 単なる発作ですのでもうしばらく我慢してください
上下?前後だろ
HDDにDOSをインストールしたく試行錯誤してますが、うまく行きません。
VirtualPCのWin98SEからひっぱってきたcommand.com io.sys msdos.sysを
ttp://files.extremeoverclocking.com/file.php?f=197 のツールを使ってUSB起動ディスクを作成し、HDDのパーティション作成後
format D: /sys
としていますが、その後HDDからブートできません。
あるいは
format D:
sys D:
も試しましたができませんでした。
識者の方アドバイスをお願いします。
341 :
340 :2008/11/23(日) 02:10:59 ID:eboB22h0
ちなみに訂正&書き忘れです。 誤:format D: /sys 正:format D: /S USBドライブ:C HDD:D で認識されています。
変数の置換%x:ほにゃら1=ほにゃら2%、!x:ほにゃら1=ほにゃら2! で、ほにゃら1ほにゃら2の部分に変数を使う方法はありますか? 固定ではなくて変数使って前処理の結果を反映させて可変にしたいということなんですが
%と!があること知ってるならできるだろ
ソフ板のImageMagickスレが落ちてしまったようなのでこのスレで質問させてください。
ImageMagickで↓のページの"Torn Paper Edge"の処理をしたいのですが
サンプルの記述をどうやって一行に書き直せばいいのかわかりません。
"("と")"の取り扱いがまずいのかと思いましたが・・・
ttp://www.imagemagick.org/Usage/thumbnails/#soft_edges ちなみに、↓の記述だと動きませんでした。
"convertのパス" "対象のパス" ( +clone -threshold -1 -virtual-pixel black -spread 10 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 ) +matte -compose Copy_Opacity -composite torn_paper.png
345 :
名無し~3.EXE :2008/11/25(火) 23:46:14 ID:1X0sybpq
>>343 そんな意地悪言わないで教えてよ
教えると寝つきがいいよ
346 :
名無し~3.EXE :2008/11/25(火) 23:48:10 ID:1X0sybpq
これじゃあ使えないんだよね %x:%ほにゃら1%=%ほにゃら2%% %x:!ほにゃら1!=!ほにゃら2!%
348 :
名無し~3.EXE :2008/11/26(水) 00:29:31 ID:hZeSxxLM
TOPページのURLを貼っただけのものはアドバイスとは認めません 却下
じゃあ一生悩んでなさい ヒントまでもらっておいて自力で調べようとしないなんてどんだけ横着なんだよ
350 :
名無し~3.EXE :2008/11/26(水) 00:41:37 ID:hZeSxxLM
ああもういいや setlocal使ってなんかやってたら出来た 役に立たないスレは要りませんよ〜
!の使い方知らなかったなんてびっくり
352 :
名無し~3.EXE :2008/11/26(水) 01:31:11 ID:uUizZBEz
必ず出てくる3流の煽り屋
>役に立たないスレは要りませんよ〜
for文について質問です。解説によるとdoの後ろにコマンド名を記述するとありますが doの後ろの()の中に単一のコマンドだけでなく複数のコマンドを記述する方法はありませんか? forで取得した変数名をsetコマンドで文字列整形したり、取得した変数名そのものを 別のコマンドラインアプリに渡したりという複数の作業を一括で処理して かつそれをfor文で複数回まわすということがしたいのです。
このスレをforで検索
>>353 どうーせ教えてないのに格好つけなさんなw
>354 括弧の中身を改行して1行1コマンドで書くのが簡単だが 若干挙動にクセがあるので、callコマンドを入れて 中身の処理は別ラベルに飛ばすのが結果的には一番楽かと
358 :
354 :2008/11/26(水) 18:13:08 ID:fdOS5y04
ただいま規制中につきレス代行をお願いしてるため返事が遅くなります。ご了承ください。
>>355 検索してみて「あれ?やっぱり()でくくると複数のコマンド実行できるのか?」と
思ったのですが、自分のところで問題が発生していた原因がわかりました。
コマンドの中に外部アプリを呼び出しているものがあるのですが、そのオプションの中に
()を使うものが含まれていました。^でラスタライズしたところちゃんと機能したようです。
>>357 普通のバッチを記述する場合と少し勝手が違うようですね。
for文の中で格納した%%A等の変数名はechoでちゃんと呼び出せるのですが
普通にsetコマンドで格納して表示しようとしても%が省略されてしまって
正しく機能しません。これは仕様でしょうか?
361 :
354 :2008/11/26(水) 22:14:01 ID:v3SrpVnk
遅延環境変数の使い方調べてなんとか形にすることができました、こんな使い方もあるんですね。
しかし今回文字列を操作してる対象がファイル名なため、もしその中に!が入ってると
場合によっては乙るので、どんな文字列でも安全に処理できるという意味でも
>>357 氏の
方法が賢明かもしれませんね。
>^でラスタライズ って?
363 :
名無し~3.EXE :2008/11/27(木) 17:26:19 ID:H/LIUubq
360=362
どなたか>344を教えていただけないでしょうか?
^でラスタライズ
^でエスケープ
367 :
344 :2008/11/28(金) 19:27:27 ID:i9lS+gGo
"("や")"の前か後ろに"^"を付ければいいのでしょうか? 思いつく限り試してみたのですがうまくいきません・・・・
> "convertのパス" "対象のパス" ( +clone -threshold -1 -virtual-pixel black -spread 10 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 ) +matte -compose Copy_Opacity -composite torn_paper.png convert.exe test.jpg ( +clone -threshold -1 -virtual-pixel black -spread 10 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 ) +matte -compose Copy_Opacity -composite torn_paper.png 何もせんで普通に動いたが? カッコ無かったら枠だけになるんだなw
369 :
344 :2008/11/28(金) 20:23:51 ID:i9lS+gGo
括弧が無い状態でも動きません・・・・ すぐ上のRounded Cornersのほうのは問題なく機能してるのですが・・・ 一応、記述ミスを疑って>368さんのをコピペしてもみましたがやはり無理でした。
古いんじゃないの? imagemagick自体が。 それとも記述が古いか。 俺の持ってるのは最新じゃないしな。
371 :
344 :2008/11/28(金) 21:09:18 ID:i9lS+gGo
>>370 6.3.5-0がインストールされてたので6.4.6-4に更新して古いほうをアンインスコしたら
>368さんの記述で正常に出力されるようになりました。
ホントお騒がせしました。検証に付き合っていただいて感謝します。
%date% だと / で区切られますが、これを簡単に - に変える方法があれば 教えてください。(Windows)
374 :
名無し~3.EXE :2008/12/04(木) 11:38:56 ID:e5rbl3UX
echo=%date:/=-%
376 :
名無し~3.EXE :2008/12/06(土) 23:03:10 ID:/El7LbYF
vistaのコマンドプロンプトで aa bb という2行にわたる文字列をコピペすると改行が反映されず1行で aabb と何故か表示されてしまうのですが、これをaaで実行bbで実行、という風には出来ないでしょうか。 xpと知り合いのvistaでは1行で表示されずaaで実行bbで実行、となるのですが・・・。
runas の /savecred オプション使ってしまった場合どこで資格情報削除したらいいんでしょうか? XPでの削除例はあるようですがvistaの場合はどうすればいいのかわかりませんorz
>>377 xpや知り合いのvistaとの違いは?
>378
xp での対処法はdocument&settings\application data\microsoft\credentials を削除ということらしいのですが,
http://d.hatena.ne.jp/wiseler/20071108/p1 vista だとdocument&settingsあたりのフォルダ構成がすっかり変わっているので…
とりあえず%users%以下のcredentialsフォルダは削除しまくったつもりなのですがダメみたいです
ダメと判定してる基準は管理者権限のないvncサーバが外部から認識できたりとか
(savecredスイッチ使う前は外部とのコネクション確立できなかったんです)
>>379 「XP」の%APPDATA%
C:\Documents and Settings\[ユーザ]\Application Data
「Vista」の%APPDATA%
C:\Users\[ユーザ]\AppData\Roaming
381 :
名無し~3.EXE :2008/12/07(日) 10:04:19 ID:BMCka075
俺の%APPDATA% ちんぽ:\大腸\小腸\胃
>>381 ちんぽの中に大腸,小腸,胃があるのかw
ふつうだったら、
%SYSR
383 :
名無し~3.EXE :2008/12/07(日) 10:14:52 ID:9SnkaHi2
>>381 ちんぽの中に大腸,小腸,胃があるのかw
普通だったら、%SYSROOT%\CHINPO\
に保存すべきだろ。
>>376 異なるものを貼り付ければ異なる結果になる
メモ帳に貼り付けてよく見ろ
%SYSROOT% なんて環境変数あったっけか
set s
9x:%windir% NT:%SystemRoot% or %windir%
ここに初心者いないだろそれどころか中級者すらいない 上級者ばかりで話についていけん 回線切ってしばらく外で勉強するわ
後期上級者
ここで質問するレベルにいないのはわかってるんですが… 遠方にあるパソコンに、設定用にファイルを登録するのに、 一時的に解凍してできるフォルダにある、バッチファイルで、 XCOPYをしてコピーかけています。 最後にその解凍したフォルダを消したいので、 RMDIRでフォルダをしていているのですが、 中身は空になるのですがフォルダだけ残ってしまいます。 こういう場合、どうしたらいいでしょうか… 遠方のパソコン(船に搭載している)で、操作する人の レベルがまちまちなので、なるべく簡単一発操作で ファイルをコピーし、作業で使う一時ファイルは自動で消したいのです。
start /d .. cmd /c RMDIR フォルダ
デジカメからファイルを取り込むのに愛用していたソフトが何故か 新しいPC&デジカメで挙動不審なので、初めてバッチファイルを作成してみました。 フォルダ「2008_1217」を作り、下に「2008_1217_01.jpg…」と置きたいと思っています。 if exist "X:\DCIM\100SSCAM\*.JPG" goto JPG :JPG set File=%Date:~0,4%_%Date:~5,2%%Date:~8,2% md F:\Data\album\Photo\2008\%File% copy X:\DCIM\100SSCAM\*.JPG F:\Data\album\Photo\2008\%File% set n=00 for %%A in (F:\Data\album\Photo\2008\%File%\*.JPG) do ( set /a n+=1 call rename %%A %File%_%%n%%%~x1.jpg ) (MP4も有るので一部抜粋。後半はネットから拾ったそのままです) 大分近づいてきたのですが、連番を二桁にするにはどうすればいいのでしょうか? あと現在日時でなく、デジカメに記録された日時でファイル名変更できますか?
:二桁連番発生その1 for /L %%q in (0 1 99) do if %%q LSS 10 (echo 0%%q) ELSE echo %%q :二桁連番発生その2 for /L %%q in (0 1 9) do for /L %%r in (0 1 9) do echo %%q%%r なんかかっこ悪い・・・
394 :
名無し~3.EXE :2008/12/17(水) 09:10:09 ID:8Xb0YJuA
別件で来てみたらここでも流行のcallが 自分だったらこうします サンプル @echo off set n=1000 for /L %%A in (1,1,99) do ( set /a n+=1 call echo=%%n:~-2%% ) pause
395 :
名無し~3.EXE :2008/12/17(水) 09:32:36 ID:8Xb0YJuA
ここから自分の案件 call はほとんど使ったことが無いのが、最近色んなところで見かけるから 使ってみようと思ったらちょっとどつぼに コマンドプロンプトで対話的に使ってる時 set a=b set b=c set c=12345 と入力して call echo=%%b%%とすれば cの値12345が取り出せるのを確認したのち これをbat化するとまったく取り出せないのでどつぼに 正解の書き方がわからないので%をひとつずつ増やしていったら正解は call call echo=%%%%%%%a%%%%%%% だとわかりました この書き方の場合 %が偶数個ではaからbへの変換は起きずにただ%%→%になるだけ %が奇数個ではaからbへの変換と同時に%%→%になる
396 :
名無し~3.EXE :2008/12/17(水) 09:39:15 ID:8Xb0YJuA
実験.bat @echo off set a=b set b=c set c=12345 echo=2個 echo=%a% echo=%%a%% call echo=%%a%% call call echo=%%a%% echo=3個 echo=%%%a%%% call echo=%%%a%%% call call echo=%%%a%%% echo=4個 echo=%%%%a%%%% call echo=%%%%a%%%% call call echo=%%%%a%%%% echo=5個 echo=%%%%%a%%%%% call echo=%%%%%a%%%%% call call echo=%%%%%a%%%%% echo=6個 echo=%%%%%%a%%%%%% call echo=%%%%%%a%%%%%% call call echo=%%%%%%a%%%%%% echo=7個 echo=%%%%%%%a%%%%%%% call echo=%%%%%%%a%%%%%%% echo=↓これ成功 call call echo=%%%%%%%a%%%%%%% pause
397 :
名無し~3.EXE :2008/12/17(水) 09:42:12 ID:8Xb0YJuA
まあ、変数をこんな使い方する人もいないので遊びのようなものです 以上
別のバッチ実行で連番を続けるにはどうするにゃん?
>>391 ありがとうございます、ばっちりでした!
すごい、魔法みたい。
start /d パス コマンドまたはプログラムを実行する初期ディレクトリを指定。
cmd /C 後続する文字列で指定されたコマンドを実行後,終了する
勉強になります。
あとは、スタートボタンをクリックした時に出る電子メールソフトの
表示を消せれば…がんばって調べてみます。
>>397 call echo !a!
はどうするわん?
401 :
392 :2008/12/18(木) 03:36:57 ID:0CEWn688
>>393 ご、ごめんなさい。私の頭では、どう組み込んでいいかわかりませんでした…
>>394 1000から始めて前二桁を削るってことですよね?
なるほど、その発想はなかったです。
/Lとか(1,1,99)とかよくわからなかったので
「set n=1000」と「%%n:~-2%%」の部分だけ392から書き換えてみたらうまくいきました。
どうもありがとうございました。
402 :
392 :2008/12/19(金) 23:58:37 ID:o4v3toXA
その後、ファイル作成日時でリネームも出来るようになったけど、 ifで「jpgだったら:JPGへ」、「それ以外は:MP4へ」と始めに付け加えて MP4でも同じように記述したら、何か挙動がおかしい… 途中で「重複ファイルうんぬん」とか出るし、 MP4はリネーム前とリネーム後が作成フォルダに現れちゃうし。 う〜ん、難しいですね。 もう面倒なんで、最後に余分ファイルDELでいいか…
for %%A in (F:\Data\album\Photo\2008\%File%\*.JPG) do ( ↓ cd /d "F:\Data\album\Photo\2008\%File%\" for /f "delims=" %%A in ('dir /b *.JPG') do (
405 :
392 :2008/12/21(日) 01:45:15 ID:QyX50530
>>403-404 ありがとうございます。
まだ「重複ファイル〜」表示は出るもののうまくいったかに思えたんですが、
いったんデジカメのデータを消して適当に撮ったもので試したら、
今度は動画ファイルが2つから6つへ増殖してしまいました。
なんか根本が間違ってるかも。以下、内容です。
406 :
その1 :2008/12/21(日) 01:46:54 ID:QyX50530
:JPG set jpg=X:\DCIM\100SSCAM\*.JPG set photo=F:\Data\album\Photo\2008\ for %%A in (%jpg%) do call :sub "%%A" %%~tA goto :eof :sub set A=%2 set fdate=%A:~0,4%_%A:~5,2%%A:~8,2% md %photo%%fdate% 2>NUL copy %1 %photo%%fdate% cd /d %photo%%fdate% set n=1000 for /f "delims=" %%B in ('dir /b *.JPG') do ( set /a n+=1 call ren %%B %fdate%_%%n:~-2%%.jpg )
407 :
その2 :2008/12/21(日) 01:47:38 ID:QyX50530
:MP4 set video=F:\Data\album\MP4\ set mpg=X:\DCIM\100SSCAM\*.MP4 for %%C in (%mpg%) do call :sub2 "%%C" %%~tC goto :eof :sub2 set C=%2 set mdate=%C:~0,4%_%C:~5,2%%C:~8,2% md %video%%mdate% 2>NUL copy %1 %video%%mdate% cd /d %video%%mdate% set n=1000 for /f "delims=" %%D in ('dir /b *.MP4') do ( set /a n+=1 call ren %%D %mdate%_%%n:~-2%%.mp4 )
文頭 if not exist "X:\DCIM\100SSCAM\*.*" goto :eof if "X:\DCIM\100SSCAM\*.*"=="X:\DCIM\100SSCAM\*.jpg" goto JPG else goto MP4 恥ずかしい記述あるかも知れませんが… しつこかったらごめんなさい。
:sub2 set C=%2 set mdate=%C:~0,4%_%C:~5,2%%C:~8,2% md %video%%mdate% 2>NUL cd /d %video%%mdate% set n=1000 :loop set /a n+=1 if exist %mdate%_%n:~-2%.mp4 goto loop copy %1 %mdate%_%n:~-2%.mp4 goto :eof JPGについても同様。他にも間違いあるかもね。 あと増殖したとかいう、リネーム後のファイル名が知りたいところ。
繰り返しcopyすれば増殖するだろ? やりたいのはmoveか?
if "X:\DCIM\100SSCAM\*.*"=="X:\DCIM\100SSCAM\*.jpg" 常偽?
なぞの呪文の秘密を知ってしまったようだww
413 :
392 :2008/12/22(月) 18:49:33 ID:89nET46x
無事、思い通りの結果になりました! 本当にありがとうございます!
>>409 さんので書き換えた上で、
バッチファイルを二つに分けるか、copy→moveにするかで成功しました。
>>410 最終的にはmoveにするつもりでした。もう大丈夫かな?
書き換えただけでは、重複メッセージ出ないのに増殖しました。
ファイル名は、元のMP4が二つしかないのに
2008_1222_01.mp4とちゃんと連番ついた物が〜06までできてしまいました。
(中身は元の二つがそれぞれ三つ)
よく考えたら、408二行目のifは別に要らないですね。しかも間違ってる??
あと、copy・moveだけでファイル名変えられるんですね。
質問なんですが、(ps)killコマンドで常駐プロセスを終了させた後 マウスオーバーするまで、タスクトレイのアイコン表示が リフレッシュされず残ってしまうのを強制的に更新して消せないでしょうか OSはXPsp3です
explorer も再起動しちゃえ
DOSモードで実行不可な実行ファイルをコマンドプロンプトで実行させたいのですが、何か方法はないでしょうか? DOSモードで起動ではなく普通にexeをダブルクリックした時と同じ状態に出来ないかと模索しています。 どうかよろしくお願いします。 普通にC:\WINDOWS\target.exeという記述では DOSモードで起動してエラーが出てしまいます。
↓超能力者がお助け
あなたが分からないからってそんなこと言うのはやめましょう 凄いスキルを持つ人にとっては朝飯前のはずですよ?
start C:\WINDOWS\target.exe
420 :
超能力写 :2008/12/26(金) 18:57:00 ID:+tTMN8Fb
>>416 9x/Meなの?
exeのプロパティ(というかpif)でMS-DOSモードで起動する設定にしてるんじゃない?
cd C:\WINDOWS
>>418 を翻訳すると
「凄いスキルを持つ人」しかわからように最少の情報しか与えるつもりはない
情報ピースが欠けている部分は想像力を働かせて俺様のために考えろよ、ボケなす
ということですね
この態度は、かなりの項目にそのまま該当する
<わからない八大理由>
1. 読まない ・・・説明書などを読まない。読む気などさらさらない。
2. 調べない ・・・過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3. 試さない ・・・めんどくさいなどの理由で実行しない。する気もない。
4. 理解力が足りない ・・・理解力以前の問題で理解しようとしない。
5. 人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする。
6. 感謝しない・・・教えてもらって当たり前。事がすんだらさようなら。
7. 逆切れする・・・自分の思うようにならないと逆切れする。
8. 内弁慶・・・ネットで嫌な事があったら親に八つ当たりする。
教えて君の定義
・質問する前に自分で知りたいことを調べていない・検索をしていない
・何度も連続して質問をする
・「初心者なので」という言葉を使い、教えてもらうのが当然だとおもっている
・知ってるんだから教えるのは当然だと勘違いしている
・無知を武器に攻撃してくる
・質問に答えても、その答えについて考えないで「わからない」という
そこまで的確に翻訳できててなんでスルーできないのか...。
425 :
 ̄\( ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ :2008/12/27(土) 14:32:01 ID:1Xq7R0aA
/ ̄ ̄ ̄ \ / ̄ ̄ ̄ ̄ ̄ ミ / | / ,――――-ミ ∨∨∨∨∨\ | / / / \ | |▲ ▲ || | / ,(・) (・) | |(・) (・) 6) (6 つ | | | || | ___ | | ¨ / | /__/ / \/\ /\ /| /\ / ̄ ̄ ̄ \ ∧ / ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | スルー出来てないのはお前だろ
426 :
名無し~3.EXE :2008/12/27(土) 21:48:17 ID:Iej0+QzL
424=416=418
427 :
名無し~3.EXE :2008/12/27(土) 21:50:13 ID:9RWfn8lS
あ
428 :
名無し~3.EXE :2008/12/29(月) 11:27:46 ID:G4UkH8iC
a.txtに 111 222 のように2行書かれてます この内容をa.exeに渡したいんですが、どうすればいいですか? unix系だと a.exe `cat a.txt` でいけると思いますが
a.exe a.txt で逝けるようにa.exeを作る。
>428 テキストファイルの「内容」を「引数」として渡したいってことか。 う〜ん、cmdではあまりしないだろうなぁ。 標準入力として渡してもOKな仕様にするか、ファイル名を渡すと展開してくれる仕様にするか… いずれにしても、実行ファイル側で何とかするか ファイルを展開したものを引数に起動するスクリプトを組むか、どっちかになりそう。
a.txtを 111 222 という内容のb.txtに変換、b.txtを渡すとか
( set /p x= set /p y )<a.txt a.exe %x% %y%
y=
>>428 内容が2行固定なら、
>>432-433 でいい。
行数可変なら
setlocal enabledelayedexpansion
set a=
for /f %%l in (a.txt) do set a=!a! %%l
a.exe %a%
endlocal
でいけると思う。
a.exe !a!
>>435 なんで遅延評価が必要か理解してる?
!a! にしちゃだめとは言わないけど、そうする必要はないでしょ。
a.exe%a% a.exe %a:~1%
setlocal enabledelayedexpansionからendlocalの間では 使わなくて済む%a%を使わないほうが安全だよ
>>437 それより
setlocal enabledelayedexpansion
set a=a.exe
for /f %%l in (a.txt) do set a=!a! %%l
!a!
endlocal
>>438 > 使わなくて済む%a%を使わないほうが安全だよ
なんで?
%a% が必要なところもあるし、遅延評価をちゃんと理解してたら、
%a% と !a! の使い分けぐらい普通にできると思うけど。
>>439 そのやり方するなら、変数名を a (=arguments) から c (=command line)
あたりにしてもらったほうがいいかも。
>>436 a.txtの中身を↓にして実行してみれば分かるかも。
&rmdir
/s
/q
C:\
一生懸命考えたんだろうな。 その努力を他に向ければ良いのに。 最初に rmdir なんて書いてあれば、アホでも引っかからんと思うぞ。
> なんで? とか言ってるから教えてあげたのに(´・ω・`)ショボーン
アホに加えてしつこいな。 そこまで言うなら、ちゃんと説明してみなよ。 rmdir /s /q c:\ を実行させようとしている意図を。
446 :
>>445 :2008/12/30(火) 21:36:55 ID:18pFiOVj
遅延評価ならrmdirは実行されないって言いたいんでしょ。
> 使わなくて済む%a%を使わないほうが安全だよ ってのが、なんでなのか分かってないから、安全じゃない例を出しただけだよ。
449 :
>>445 :2008/12/30(火) 22:28:31 ID:18pFiOVj
a.txt 111 222 3!3 !a! で!が化けないようにするのは無理か
for /f %%l in (a.txt) do ( setlocal disabledelayedexpansion set b=%%l setlocal enabledelayedexpansion set a=!a! !b! )
>>451 なんじゃこりゃwwwこんなことが出来るのか
横レスだが、これいただき
|\__/|お礼に ちょっと揉ましょう
/ ▼▼▼ヽ /  ̄`Y  ̄ ヽ
| (●) (●) |/ / ヽ
| 三(_又_)三|i / // / i i l ヽ
∩, /.\__ ^_/ // / l | | | | ト、 |
丶ニ| ノ| || i/ .⌒ ⌒ | |
.__,, -∪⌒∪" ̄∪(S|| | (ー) (ー) |_
( __,, -──── | || | __ .ノ_ )|_)
(_,,___.._______,,____)
453 :
名無し~3.EXE :2009/01/03(土) 15:49:02 ID:PewFv53v
@echo off rem IF文括弧()実験.bat set a=5 if %a%:==8: set a=八 else if %a%:==9: set a=九 else set a=五 echo=実験A:%a% set a=5 if %a%:==8: set a=八 else (if %a%:==9: set a=九 else set a=五) echo=実験B:%a% set a=5 if %a%:==8: set a=八 else (if %a%:==9: (set a=九) else set a=五) echo=実験C:%a% set a=5 if %a%:==8: set a=八 else (if %a%:==9: (set a=九) else (set a=五)) echo=実験D:%a% set a=5 if %a%:==8: (set a=八) else if %a%:==9: set a=九 else set a=五 echo=実験E:%a% set a=5 if %a%:==8: (set a=八) else (if %a%:==9: set a=九 else set a=五) echo=実験F:%a% set a=5 if %a%:==8: (set a=八) else (if %a%:==9: (set a=九) else set a=五) echo=実験G:%a% set a=5 if %a%:==8: (set a=八) else (if %a%:==9: (set a=九) else (set a=五)) echo=実験H:%a%
454 :
名無し~3.EXE :2009/01/03(土) 15:49:46 ID:PewFv53v
set a=5 if %a%:==8: (set a=八) else ( if %a%:==9: set a=九 else set a=五 ) echo=実験I:%a% set a=5 if %a%:==8: (set a=八) else ( if %a%:==9: (set a=九) else set a=五 ) echo=実験J:%a% set a=5 if %a%:==8: (set a=八 ) else ( if %a%:==9: set a=九 else set a=五 ) echo=実験K:%a% rem set a=5 rem if %a%:==8: (set a=八) else (if %a%:==9: set a=九 else (set a=五)) rem echo=実験L:%a% pause
455 :
名無し~3.EXE :2009/01/03(土) 15:56:08 ID:PewFv53v
正月に落とし穴にはまったので実験報告 実験Lのような「後ろ括弧系のif文」はのきなみエラーになるが むしろエラーになる方が親切で エラーにもならずに違う結果になるのが困りもの 実験Fのような if %a%:==8: (set a=八) else (if %a%:==9: set a=九 else set a=五) はよく書きがちな書き方でこれが働かないとは今まで気が付かなかった 以上
ちがうだろ if 条件 (真) else 偽 が普通で、ネストするなら if 条件 (真) else if 条件 (真) else 偽 で何の問題も起きないだろ?
457 :
名無し~3.EXE :2009/01/03(土) 16:20:08 ID:PewFv53v
>>456 「ちがう」とは実験の何がちがうの?ww
実験は実験見たままです
どうとらえようがどう感想を持とうが見た人の自由
いつもの会話が不自由な人のようだから
相手にしない方がよさそう
ではさようなら
458 :
名無し~3.EXE :2009/01/03(土) 16:33:08 ID:PewFv53v
あ?これをそのまま書いてると思ってるのかな? 説明するまでもなく実験batはここに貼るために作ったものですよ %a%は変数だから%a%の値は8かも9かも5かも知れない条件下で使ってる あらかじめ真だの偽だのわかるならIF文使って判定する必要ないし 上のは実験用に書いてるだけ こんなことも説明しなきゃいけないとはトホホ どっちにしても相手しない方がよさそうだ さようなら
459 :
>>445 :2009/01/03(土) 17:10:58 ID:cNHL7FsG
いったい何をしたいのか知らんけど、単に set 文を () で囲めばいいだけだろ。 --- test.cmd --- @echo off setlocal enabledelayedexpansion for /l %%x in (7,1,10) do ( if %%x:==8: (set a=八) else if %%x:==9: (set a=九) else (set a=五) echo %%x !a! ) endlocal c:\>test 7 五 8 八 9 九 10 五
460 :
名無し~3.EXE :2009/01/03(土) 17:23:22 ID:PewFv53v
>>459 >〜すればいいだけだろ。
だから実験なんだってww正しく動作する書き方は当然わかってますよww
しつこいよお前
IF文が括弧位置で違う結果を出すという正月の暇用お遊び実験
>実験Fのような >if %a%:==8: (set a=八) else (if %a%:==9: set a=九 else set a=五) >はよく書きがちな書き方でこれが働かないとは今まで気が付かなかった if/?も見ないでif/?に書いてあることを実験で「発見」したってこと? 次の例は、正しく動作しません: IF EXIST filename. del filename. ELSE echo filename. missing 次の例のように、すべてのコマンドを 1 行にすれば正しく動作します: IF EXIST filename. (del filename.) ELSE echo filename. missing
462 :
名無し~3.EXE :2009/01/03(土) 17:37:06 ID:PewFv53v
>>461 どこに「こういう現象を私が発見した」とか書いてます?
「知らなかった。地球は丸かったとは今まで気が付かなかった」と書いたら、
その人が地球が丸いことを発見した人になるんですか?
よく書きがちという些細な言葉尻を捕まえて必死な様子はわかりますが
自分がよく書きがちということで世間で多いか少ないかは知らない
IF文が括弧位置の違いで違う結果を出す!けしからん!マイクロソフト出て来い!
とか言ってるわけでもないですよww
「括弧の位置も大事ですよね」という実験
こりゃ駄目だこのスレ
これだけ絡んでくるやつがいると
山口組でもここまで絡まないだろw
463 :
名無し~3.EXE :2009/01/03(土) 17:40:47 ID:PewFv53v
>>462 ていうか
お前他人の文章は言葉尻だけ捕まえてえらい絡んでるが
お前の珍妙な文章
>>456 絡もうと思えばいくらでも絡めるぞ
464 :
名無し~3.EXE :2009/01/03(土) 17:41:18 ID:PewFv53v
465 :
名無し~3.EXE :2009/01/03(土) 17:54:00 ID:PewFv53v
ああそうか
>>461 が絡んできた理由がわかった
この日本語読解力ゼロのアホは
>は(自分は)よく書きがちな書き方でこれが働かないとは(自分は)今まで気が付かなかった
この部分を
は世間一般ではよく書きがちな書き方だがこれが働かないとは世間一般の人は今まで気が付かなかった
これに気が付いたのは俺だけだ。おれが発見した。」
と読んだのかwwバカじゃねえのか
466 :
>>445 :2009/01/03(土) 18:15:11 ID:cNHL7FsG
ID:PewFv53v は、いったい誰と戦ってるんだろうか... きっと淋しい奴なんだろうな...
467 :
名無し~3.EXE :2009/01/03(土) 18:26:49 ID:PewFv53v
>>466 とるに足らない実験レス
>>453-455 に過剰反応して延々やってる方がよっぽどかわいそうなやつだろ
勝手にやっとけばもう相手しないから
今年も不毛な幕開け
469 :
>>445 :2009/01/03(土) 20:37:59 ID:cNHL7FsG
470 :
初心者 :2009/01/04(日) 00:19:17 ID:rXOohu7L
CDの起動ディスクで、起動時にCTL+Cで停止すると、CD-ROMドライブの D:ドライブとかじゃなくて、必ずA:ドライブになってますよね? あれはどういう意味なんでしょうか? 仮想ドライブ? ghostのリストア用の起動ディスクを作成しているのですが 分からないことだらけです。
ID:cNHL7FsG は、いったい誰と戦ってるんだろうか... きっと淋しい奴なんだろうな...
472 :
470 :2009/01/04(日) 11:44:19 ID:rXOohu7L
すんません 他で聞きます
>470 A:というのは仮想的に作られたFDドライブ(実体はCDの中身) CDがFDエミュレートモードで起動可能な作りになってるとそうなる。
キー押したときにCUIベースのアプリを実行するといったことをしたいのですが キー入力→コマンド実行→先頭に戻る というような感じで記述すればいいのでしょうか
:先頭 pause CUIベースのアプリ goto 先頭
終了するときは?
:先頭 echo 終了するときはCtrlキーを押しながらCキーを押してください pause (略)
478 :
474 :2009/01/05(月) 23:48:08 ID:kaW28Fgn
>>475 thx。考え方は間違えてないか
バックグラウンドで動作させるために挫折していたC言語の参考書読みあさる作業が始まるお…
ショートカットのホットキーじゃあかんのか?
えーとぶっちゃけるとフルスクでゲームしている時に任意のキーを押してコマンドを実行するってケースです キャプチャしてるんで最小化して〜というのは出来ないし
エロ画像キャプチャしたいんなら専用の常駐フリーウェアがいくらでもあるぞ ホットキーも設定できるのが普通
>>480 もうちょっとぶっちゃければ代替方法が見つかるかもね
そのCUIベースのアプリってので何をしたかったのかな?
デスクトップにショートカット置いてホットキー設定しとけばいい話じゃないの?
484 :
480 :2009/01/08(木) 00:03:37 ID:Rc9wKuvZ
ビデオカードのクローン出力でMonsterXってキャプボに繋げるんだけど ゲーム起動したりAlt+Tabするとキャプボのドライバの設定が初期化されてしまうって仕様なので 有志制作のCUIアプリをゲームしながらポチっとなと動かせれば万々歳ということです 窓の杜は無かったしVecterもそれらしいの見つからないなぁ…
>>451 ループでsetlocalのネストが深くなっても問題ない?
33 最大 setlocal 再帰レベルに到達しました。
487 :
名無し~3.EXE :2009/01/11(日) 23:21:16 ID:Zg94i/Nv
Win xp の systeminfoコマンドってSP3導入するとなくなったりするの? c:\windows\system32にもないし。 コマンドでもうんなコマンドねえ怒られる
Vista SP-1 だけど systeminfo あるな
>>488 thx
自分が確認したところWindows XP pro sp3 Windows home sp3ではなかった。
>>487 WinXP Pro SP3だけどあるお。
SP3適用済みのディスクでOSインストールした場合だけど。
homeにはそもそもsysteminfoなかったハズ proは%SystemRoot%\system32にあるね
例の揚げ足取り厨が出てきた模様 良い子の皆さんはいったんここ放棄して避難せよ
>>486 %変数%はendlocal越える方法あるけど、!変数!でendlocal越える方法は?
echo !変数!>temp endlocal set /p 変数=<temp
自作のbatファイル、置いてある場所に設定ファイルがないと駄目な仕様なんですが、 こういうのを使うためにPATHを通す場合、 @echo off set cd=%cd% cd "自作batのある場所" call 自作bat cd %cd% みたいなbatファイルをPATHが通った場所に置くやり方がいいんでしょうか? もっと自作batを弄る以外でまともな方法ありましたら教えてください。
あー駄目だ
>>499 のだとパラメータが受け取れないw
やっぱり汎用的にTEMPとか使う方がいいんですかね・・・。
>>500 自作バッチの頭でpushd %~dp0してお尻でpopdするんじゃだめなの?
そうじゃなかったら自作バッチ内で設定ファイルを%~dp0setting.iniみたく
フルパスで読み込むとか。
@echo off setlocal cd "自作batのある場所" call 自作bat %*
複数のテキストファイルの内容を1つのテキストファイルに統合するやり方はわかるんですけど 統合テキストにファイルを統合する前に、被統合ファイル名を入れたいんですけど これはbatファイルだけで可能なんでしょうか、それともVBみたいな他のプログラムが無いと出来ないのでしょうか。 可能な場合はやり方は自分で見つけるので可能か不可能かだけでも教えていただけないでしょうか。 よろしくお願いします。 【統合ファイルの内容】 被統合ファイルAファイル名 被統合ファイルA内容 被統合ファイルBファイル名 被統合ファイルB内容 被統合ファイルCファイル名 被統合ファイルB内容 みたいな感じです。
find /v "" 被統合ファイルAファイル名 被統合ファイルBファイル名 被統合ファイルCファイル名 > 統合ファイル名 みたいな感じです。
echo 被統合ファイルAファイル名 > 統合ファイル名 type 被統合ファイルAファイル名 >> 統合ファイル名 (略)
>>504-505 そんな簡単にできるんですか。
早速やってみます。ありがとうございます。
特に
>>504 さんは迅速な回答をしてくれていたようで…
返事が遅くなってごめんなさい。ありがとうございました。
みんなコマンドラインツールどこに置いてるの? とりあえずインストール不要なソフトがあるドライブの直下に Binってフォルダ作ってそこに入れてるんだが。 あとここにショートカットとかぶち込んでおくと便利。 でもWindowsのcmd.exeって貧弱すぎるんで CygiwinとかNYAOSとかいろいろ試したが 結局PowerShellに落ち着いた。
もしかして: Cygwin
>>499 ,502
↓ちょっと参考までに以下のバッチファイルを試してみてくれないか?
@ECHO OFF
ECHO ESCシーケンスTEST START
IF "%OS%"=="Windows_NT" COLOR 0F
IF NOT "%OS%"=="Windows_NT" ECHO [40m[1m[37m ESCシーケンスによる表示属性調整OK.(BackColor=Black,Light,ForeColor=White)
FOR /F "eol=; tokens=* delims=/ " %%i IN ('CD') DO @ECHO カレントディレクトリは【%%i】です。
PAUSE
ごめん。
>>509 のバッチは最後の2行以外すべて無視してくれていい。
いやだよ
512 :
名無し~3.EXE :2009/01/27(火) 19:03:35 ID:ItojJyXY
俺も嫌
@for/?
>>502 > call 自作bat %*
自作bat %*
callいらんよ
>507 俺は%homepath%直下にショートカット類置いて Win+Rの「ファイル名を指定して実行」をランチャ代わりにしてる。 コマンドライン常用しなくても割とオススメ。 でも、コマンドラインツールはひとつひとつパスを通してるなあ。 実行ファイル1個で簡潔するようなのはD:\binにまとめてるけど。
>>507 Win3.1時代からWin7βまでC:\BIN\UTY\固定。
DOS時代はC:\BINだったけど窓移行でツールが増え過ぎたので
小物系を分けた
質問 デスクトップに 遺書.txt.bat みたいな名前でHD全消しバッチファイル造りたいんだが 問答無用でフォーマットしてくれるコマンドとオプション教えてくれ
echo ハンマーで殴ってね
遺書CD作ってこれでブートしてくれって頼む方が確実。
いや、CDだとスルーされる恐れが多い 自分の身に万一の時に、残された家族がPCを開けたときに、まず最初にクリックしてほしいんだ ドライブ丸ごとよりも、エロ関係のフォルダ削除で事足りそう @echo off rmdir d\:movie\ero\* みたいな感じでいいの? y/nを問わないオプションとかある?
>>520 それだとディレクトリが空じゃなかったら消されないぞ
会社のPCみたいにソフトのインストールが制限されてるわけじゃないしな
普通の家族なら黙って叩きコワスだろうよ。
call rmdir/?
deltreeコマンドってもうないのね
del /sでどうぞ
いやdel /sだとディレクトリが消えないからdeltreeに対応するのはrmdir /sか
ってか、rd /s /q でいいんじゃね?
rdとrmdirは同じだしdeltreeにrd /s /qと同等の動作をさせるには/yが必要
deltreeはアクセス権とか軽くスルーしてくれてたような気がするが。 rd /s は結構消えないんだよね。
deltreeというかWin9xというかFATにそもそもアクセス権の概念がなかった
テキストファイルを右クリックしたときに特定のフォルダにコピーを作るメニューを追加したいのですが レジストリエディタでtxtファイルを右クリックしたらメニューが出るようには出来たのですが 肝心のキーに追加するコマンドが出来ません。 "cmd"では右クリックしたファイル名を取得(もしくは引用)してコピー先に同じファイル名でコピーを作成することは 出来ませんか?
%1
>>534 for/?
if/?
set/?
copy/?
cmd.exe /c copy %1 コピー先
SendToにコピー先フォルダのショートカット作っとくんじゃダメなん?
なるほど ありがとうございました
バッチファイルのパラメータとして、%~1で与えられたファイルへのフルパス %~dp1でそのファイルがあるディレクトリまでのフルパスなどが得られますが これらの文字列からそのファイルがある"ディレクトリ名"や、そのディレクトリの "一つ上位まで"のフルパスを抽出する方法はありますか? setコマンドとワイルドカードを使えばできるかと思ったのですが、各階層の ディレクトリ名の長さが不定なのとワイルドカードの動作がよくわからないので 手詰まりです。
再帰
set a=%~dp1 set a=%a:~0,-1% call :a1 "%a%" call :a2 "%~dp1..\" goto :eof :a1 echo ディレクトリ名 %~n1 goto :eof :a2 echo 一つ上位のフルパス %~dp1 goto :eof
call :a1 "%~dp1." goto :eof :a1 echo ディレクトリ名 %~nx1 echo 一つ上位のフルパス %~dp1 goto :eof
544 :
540 :2009/02/08(日) 23:48:22 ID:j1+u5MgD
>>541-543 遅くなりましたがありがとうございます。ナルホド、文字列の末尾をちょっと
細工してやって上位のディレクトリをファイル名に見せかけるのか、こんな方法があるなんて・・・
別件ですけど、set /aコマンドが小数点の計算が出来ずに0へ収束してしまうと知って
流石にバッチだけで何でもやるには限界を感じる今日この頃です orz
1000掛けりゃいいべ。
set /a 0.01 * 1000 演算子がありません。
autorun.infで画像を表示させた後に音楽を再生するにはどうしたらよいでしょうか?
「画像を表示させた後に音楽を再生する.exe」 を起動
「画像を表示させた後に音楽を再生する.cmd」 を起動
550 :
名無し~3.EXE :2009/02/11(水) 14:20:58 ID:1YUX1YrB
javascriptでいうsetHomepage()をDosコマンドで実装する方法ないですか? レジストリをいじる以外で
フォルダの中の1GB以上のファイルを操作 もしくは以下の操作って出来ますか?
for %f in (*) do if %~zf gtr 1000000000 echo "%f" とかでどうよ。
553 :
名無し~3.EXE :2009/02/13(金) 18:34:35 ID:v++hSdbG
拡張仕事の操作ってどうやるんですか? "*.txt"とかで出来ないんですが
554 :
名無し~3.EXE :2009/02/13(金) 19:03:43 ID:XkQNMKBa
"拡張仕事の操作"?なんのこっちゃ
ぐぐれば?
固体表面に広がった液体の薄膜を単位表面積だけ元に戻すのに必要な仕事
557 :
名無し~3.EXE :2009/02/13(金) 21:26:23 ID:v++hSdbG
txtファイルをCドライブからDドライブへ移動するのをコマンドでやりたいんです
copy *.txt d:
移動だから move では?
560 :
551 :2009/02/13(金) 22:57:28 ID:wyIbvnQC
for %f in (*) do if %~zf gtr 1000000000 echo "%f" このあとコマンドはどうすればいいんでしょうか? たとえば1G以上のファイルをDドライブへ移動という場合 for %f in (*) do if %~zf gtr 1000000000 echo "%f" move D: とかだと出来ないんですけど
echo も知らないのに他人の作ったbatを実行するなんて、すごい勇気だな。
>>560 そのレベルの頭じゃ、コマンドラインなど10年早い。
仮に正解を書いてやったところで、くだらん質問攻めになるのがオチだからな。
563 :
551 :2009/02/13(金) 23:10:36 ID:wyIbvnQC
ここって質問禁止なんですか?
はい
566 :
名無し~3.EXE :2009/02/13(金) 23:44:10 ID:WUsxMDHf
質問するならしてもいいよ 答えるか放置するかはこっちの自由
ファイルを移動の際、同じファイル名のファイルがある場合番号をつけるように出来ますか 上書きの省略/yではなく
できるよ。詳しくは、 for/?
>>560 失敗したときにコマンドプロンプト画面で echo /? と入力してみる知恵さえ出てこないようではなぁ…
もうスルーでいいと思うんだが...
環境変数内を別の環境変数で検索して見つかったらgotoという処理をしたいんですが echoで環境変数をtxtに書き出してそれをfindstrするか 環境変数を環境変数で置換してもとの環境変数と比較する以外に方法ってないんでしょうか?
>>571 ファイルに書き出す必要なくね?
echo %HOGE%|findstr %FUGA%
やりたいことがよくわからん。 1. 環境変数の存在を確かめたいのか、 2. 環境変数の中身を検索したいのかどっち? 1. なら、if defined %Name% ... 2. なら echo %Name% | findstr %SearchString% > nul if errorlevel 0 ... ではだめか?
>>572 ありがとうございます。
そのように区切って使えるのは始めて知りました。
一つ勉強になりました!
>>573 やりたいのは検索のほうです。
たしかにそれで出来そうですね。
今出先なので帰ったら確かめてみます。
ありがとうございました!
|/? &/?
I hope so.
Microsoft Windows [Version 6.0.6001] Copyright (c) 2006 Microsoft Corporation. All rights reserved. C:\>|/? | was unexpected at this time. C:\>&/? & was unexpected at this time.
?/? ?
url2text.cmd ms-its:C:\WINDOWS\Help\ntcmds.chm::/redirection.htm
>>572 >>573 >>575 ありがとうございます。
echo %file%| findstr %save% > nul && goto LOOPEND
でいけました!
なぜ >環境変数を環境変数で置換してもとの環境変数と比較 しないんでしょうか?
コマンドラインからechoコマンドのように バルーンヘルプでメッセージを通知するツールがあったら教えてください。
msg/?
ダイアログじゃなくバルーンヘルプがいいんですが。
なんどもすみません・・・
dirで
ネットワークドライブ内の、拡張子がwavだけのリストを書き出したいのですが。
何かいい方法はないでしょうか?
cd (ネットワークドライブ)
dir *.wav /s /b
だとカレントディレクトリーが移動してくれませんorz
>>582 2つほど理由がありまして
1つは、ソースの行が増えると実行速度が遅くなると思ったのと
2つめは、この処理の定みたいなものがあれば
今後のために教えていただけたらと思ったからです。
なんとなく自分の考えた方法だと周り道しているような気がしたので・・・
cd /d
>>588 こんな簡単に移動できるとは・・・
ありがとうございます!
不特定多数のユーザーが使っているPCのデスクトップにある メモ帳のショートカットを削除したいんだが、何かいい方法は無いですか? ショートカットのファイル名が変えられている場合の対処方が分からないorz
>>590 del "C:\\Documents and Settings\\guest\\デスクトップ\\*.*"
>>591 ショートカットじゃないのも消えてデスクトップが綺麗になりそう。
メモ帳以外のファイルを消してはいけないという制約が明記されていないから
>>591 は
>>592 の仕様を満たしてるじゃん
>>591 いけねーちょっとアブナイな、メモ帳ショートカット限定を忘れていた。
なぜ \\
597 :
567 :2009/02/16(月) 07:27:05 ID:DlcRhXlw
567 :名無し~3.EXE:2009/02/14(土) 01:15:42 ID:u0oaC6pi ファイルを移動の際、同じファイル名のファイルがある場合番号をつけるように出来ますか 上書きの省略/yではなく 568 :名無し~3.EXE:2009/02/14(土) 02:29:33 ID:3PVAQlzR できるよ。詳しくは、 for/? forだけでは絶対に出来ないと思うのでVBSを書いたら出来ました
>>596 低学歴に英語は厳しいな
バッチじゃ難しそうなんすね
>>597 バッチでも出来ることは出来るけどな。
forは使わないけど。
>>598 .lnkの拡張子のファイルにfindでnotepad.exeの文字列を検索すれば
メモ帳のショートカットかどうか判別可能
601 :
名無し~3.EXE :2009/02/16(月) 11:01:16 ID:6QxpJUW1
バッチでは絶対に出来ない、forでは絶対に出来ないと書けば 誰かが釣られて「ほら出来るぞ」とsample書いてくると期待してる巧妙な罠だと判断した
彼女だって作れるもんね
脳内に
for /l %n in (1,1,999) do ( if %n==1 (move ファイル フォルダ) else move ファイル フォルダ\ファイル%n )
for でつくった連番を set で変数に格納したいのですがうまくいきません アドバイスをください test.bat ------ @echo off FOR /L %%F IN (1,1,%1) DO ( if %%F LEQ 9 ( set num=0%%F hoge ) else ( set num=%%%F hoge ) echo %num% ) ------ これで test.bat 5 を実行した私の期待値は 01 hoge 02 hoge 03 hoge 04 hoge 05 hoge なのですが実際は実行1回目が「ECHO は <OFF> です。」のコメントが五回表示で 2回目の実行で「05 hoge」が五回表示され期待通りいきません test.bat の set num= を2カ所を echo に置き換えて echo %num%を削除すれば期待値通りに表示されるのに set で変数に格納したらうまくいきません どこを変えればいいとアドバイスいただけないでしょうか?
"遅延"でこのスレを検索 echo %num% が先に展開されて echo のみになっている。
set/?
遅延展開なんて機能があったのですね call で別バッチを呼び出す方法でなんとかなりそうです ありがとうございました
べつにいいけどSetLocal, EndLocalでbat内で切り替えできるし、 上のほうでCall使ってるのはあくまでウラワザ的使用法だし。
どっちもどっち >SetLocal, EndLocalでbat内で切り替えできるし、 切り替えじゃないし
>>切り替えじゃないし えっと、なんて呼ぶのが良いの?
612 :
名無し~3.EXE :2009/02/17(火) 23:48:13 ID:97kwyUrv
>>611 言葉尻捕まえ基地外だから放置がよかばってん
仲間割れすんな
614 :
名無し~3.EXE :2009/02/18(水) 20:44:53 ID:qfus9MDo
質問させてください。 現在、あるソフトウェアが書き込んだレジストリを取得して、作業を行うバッチファイルを作成したいと考えてます。 環境変数はreg queryで取得できることがわかったのですが、値だけではなく、キーも取れてしまいます。 そこで、reg queryの結果を変数に代入し、文字列処理を行いたいと考えたのですが、 set XXX='reg query .....' と書いても、XXXには結果ではなく'reg query .....'がそのまま文字列として入ってしまいます。 結果をXXXにセットする方法がわかりません。 よろしくお願いいたします。 また、レジストリの値だけを取得する方法や、バッチファイルでの文字列処理などについても存在すれば教えていただければ助かります。 よろしくお願いいたします。
615 :
名無し~3.EXE :2009/02/18(水) 21:11:52 ID:1xqoFdY4
>バッチファイルでの文字列処理などについても 壮大な質問だなwwwwww
for/?
617 :
名無し~3.EXE :2009/02/18(水) 21:13:20 ID:1xqoFdY4
とりあえずforに始まりforに終わる 何事もforに頼るべし
あんな使いにくいfor文と心中は嫌だお・・・
619 :
名無し~3.EXE :2009/02/18(水) 21:49:25 ID:qfus9MDo
レスありがとうございます。
>>615 reg queryで取得できる値が、キーとバリュー両方合わさった文字列になってしまうので、バリューだけ取り出すのに文字列処理が必要かと考え質問させていただきました。
壮大で、すみません。
>>616 >>617 for文は調べるだけは調べました
正しくないかもしれませんが、
FOR 変数 IN (コマンド) Do...
で、コマンド内容を変数に入れられると考えていますが、間違いないでしょうか?
仮にこれで正しいとして話を進めさせていただくと、私が必要としているコマンドは戻り値が1個なので、FOR文を使うのは奇妙な気がしました
また、仮にFOR文で実装すると、後でこのバッチファイルを保守する人が理解不能に陥る可能性が高いと思いました
なので、別な方法を探しています
間違いや勘違いなどありましたら、ご指摘下さい
よろしくお願いいたします
BATを保守とかカワイソすぎるから、BAT以外の方法を探してしまいなさい。さよなら奇妙な人。
>>620 薄々感じてましたが、バッチファイルの保守はやっぱりかわいそうなんですかorz
今担当しているソフトウェアはすでに10個以上のバッチファイルが存在してまして、保守しなければならない状態です
とりあえず、FOR文で処理が可能か検討してみます
622 :
名無し~3.EXE :2009/02/18(水) 22:34:26 ID:1xqoFdY4
何やってるのか情報与えないからさーぱりわからないから答えようがない 情報があってもなんか嫌な雰囲気がするから答えたくないが 既に変数に入ってるが邪魔な文字が入ってるなら前方、後方から好きな場所を切り出せばいいし 邪魔な文字は置換して消してもいい。いくらでも方法はある set /? >for文は調べるだけは調べました らしいから教える必要はなさそうだ
forがいやならsetをつかえば?
forが嫌なんて子はこのスレの子じゃありません。 よその子になっちゃいなさい。
\人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人/ > < > FORフォ━━━━━━━(゚∀゚)━━━━━━ウ!!! < > < /⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒\ (\ , -+--、 /)っ ⊂ ヽ ,」_─‐、:i' (っノ \\ (;;ノI、;;)lァ // \ ヽ、_ヽヮ`,ノ // \ ):::V:::::ノ,⌒/ 〈::::::|:::::ヾノ フォォォォォォォォ|:::::|::::::::/ ォォォォォォォォォォォォ!!!! /;;;;;|;;;;;;/ ノ:::::::::::::::) / y⌒ヾ/ ヽ/ / ( , / | | \ |__/\入 }:::| ):::ゝ ノ:::::)⊂ノ´ (;;;;;/
@for/?
レスありがとうございます
>>623 set XXX='reg query ....'とかやると、XXXにはコマンド結果ではなく'reg query ....'がそのまま入ってしまって困ってます
>>624 そうですか
今回バッチファイルを始めて触ったのですが、結構大変そうですね
FOR文勉強しときます
628 :
名無し~3.EXE :2009/02/19(木) 12:23:34 ID:mBlWrrZt
set XXX='コマンド ....' なんちゅー構文ははじめてみた いやーCMDは奥が深いわ。知らんことが次々出てくる。
>>628 「ボケ」なのか「つっこみ待ち」なのか、悩ましいカキコだな。
630 :
名無し~3.EXE :2009/02/19(木) 12:31:28 ID:mBlWrrZt
さっそく使ってみたぞwww dir の結果を環境変数XXXに格納 set XXX='dir' echo;%XXX%で結果を見てみよう 'dir' wwwww
set/?
632 :
名無し~3.EXE :2009/02/19(木) 17:51:49 ID:w6BeYUNg
>'reg query ....'がそのまま入ってしまって そりゃお前さんが入れたんだから入ってるだろwww
633 :
名無し~3.EXE :2009/02/19(木) 17:53:43 ID:w6BeYUNg
FORよりもまずSETだな FORはまだ早いwww \人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人_人/ > < > SETセット━━━━━━━(゚∀゚)━━━━━━ウ!!! < > < /⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒\ (\ , -+--、 /)っ ⊂ ヽ ,」_─‐、:i' (っノ \\ (;;ノI、;;)lァ // \ ヽ、_ヽヮ`,ノ // \ ):::V:::::ノ,⌒/ 〈::::::|:::::ヾノ セットォォォォォ|:::::|::::::::/ ォォォォォォォォォォォォ!!!! /;;;;;|;;;;;;/ ノ:::::::::::::::) / y⌒ヾ/ ヽ/ / ( , / | | \ |__/\入 }:::| ):::ゝ ノ:::::)⊂ノ´ (;;;;;/
レスありがとうございます。 本日、上司に泣いてバッチファイルは辛いと訴えたところ、すべて他の方法で処理することになりました。 ありがとうございました。 しかし、未だに自分の書いたSETのどこがおかしいのかわかりません よろしければ答えを教えてください ではでは
reg query ... >xxx set /p XXX= <xxx
なるほど ありがとうございました
バッチファイルの保守が可哀想ってどういう意味? やれることが少ない分普通のプログラムの保守より簡単だと思うけどな
簡単でつまらない単調作業だからだよ
reg query ... |set /p XXX=
それ動作しないでしょ?
するけど?
OS の違いか?
XP + SP3 ではだめ。(XXX が登録されない。)
>>635 は、動作する。
具体的にどう書いたの?
644 :
名無し~3.EXE :2009/02/21(土) 19:56:43 ID:IRwlci03
他人に聞くより お前がOS明らかにするほう早いだろ
645 :
名無し~3.EXE :2009/02/21(土) 20:03:51 ID:kw5BOxh9
お前こそうっとうしいちゃちゃ入れやめたらどうだ、と釣られてあげる♪
また来たのか
こんなスレあったのか
>>643 > reg query HKCC\Software\Fonts\ /v FONTS.FON | find "FONTS.FON" | set /p xxx=
> set xxx
環境変数 xxx が定義されていません
> reg query HKCC\Software\Fonts\ /v FONTS.FON | find "FONTS.FON" > x
> set xxx= < x
> set xxx
xxx= FONTS.FON REG_SZ jvgasys.fon
reg query HKCC\Software\Fonts\ /v FONTS.FON | find "FONTS.FON" | (set /p xxx= & set xxx )
start /high "….exe" で起動アプリの処理の優先度を高に指定出来る?
応用ができないの?
俺は単に
>>639 は動かないと指摘しただけ。
応用云々と言いたいなら
>>641 でそう書くべきだろ。
そもそもその方法ほとんど応用利かないし。
1行だけでよいならfor使うより簡単で使える
656 :
名無し~3.EXE :2009/02/22(日) 04:47:58 ID:SkcfhcvO
657 :
名無し~3.EXE :2009/02/22(日) 10:12:47 ID:jLboQaRo
reg query ... |set /p XXX= なんちゅー構文ははじめてみた いやーコマンドプロンプトは奥が深いわ。知らんことが次々出てくる。 さっそく使ってみよう echo=1234 |set /p XXX= でわ変数XXXを見てみよう > echo=%XXX% %XXX% wwwwwwwwwwwwwwwwww
659 :
名無し~3.EXE :2009/02/22(日) 10:20:59 ID:jLboQaRo
これの応用で ... |(set /p xxx= & set xxx ) というのがあるらしい こんな構文ははじめてみた いやーコマンドプロンプトは奥が深いわ。知らんことが次々出てくる。 これもさっそく使ってみよう echo=1234 |(set /p xxx= & set xxx ) ほほおう xxx=1234が返ってきたね これは期待が持てるかも でわ変数xxxを見てみよう > echo=%xxx% %xxx% wwwwwwwwwwwwwwwwww
そもそもこの話の始まりは
>>614 で
>reg queryの結果を変数に代入する
というのが趣旨だから
変数に代入できないなら今回の話とは無関係だろ
setの一覧の話じゃないし
>>660 そんなことを言うと
>> reg query HKCC\Software\Fonts\ /v FONTS.FON | find "FONTS.FON" | (set /p xxx= & set xxx )
で、例の彼が「変数に代入できてるじゃねーか」と言い出すぞ。(w
環境変数にセットはされる・・・・・・! セットされるが・・・ 今回 まだ その変数を 使用できるとまでは言っていない そのことを どうか諸君らも思い出していただきたい つまり・・・・ 我々がその気になれば セットした変数の使用は 10年後 20年後でも 不可能だろう・・・・・・・・・・ということ・・・・!
>>662 嘘はだめですね
setコマンドの一覧の一番下に出てくるバグみたいな現象は
「環境変数にセットされた」とは言えませんね
事実セットされてないし
飛躍強弁が過ぎる
ID:gL1o+Wdaが使った言葉のすべて
「reg query ... |set /p XXX=
するけど?
具体的にどう書いたの?
reg query HKCC\Software\Fonts\ /v FONTS.FON | find "FONTS.FON" | (set /p xxx= & set xxx )
応用ができないの?
>>639 は動いてるだろ?
>>648 は応用だろ?
どうしたの?」
巧妙に「動くだろ」という表現を使ってる
環境変数にセットされないことを最初から百も承知で書いてるわけだ
暇人のかく乱レス
今ID:gL1o+Wdaは壁から顔を半分だしてこのやり取りを覗いてほくそえんでるはず |___ | ⌒\ |=⊂⊃=\ |人__)⌒::: \ ←ID:gL1o+Wda |ー'´ | | / (⌒ー─' )
@echo off echo うるせー馬鹿|(set /p xxx=>NUL & call echo %%xxx%%!) goto :hell
〜|set /p XXX=をVitaSP1でやってみたけど、なにも代入されないな。 セキュリティ強化の関連でstdin、stdout、stderrの仕様が変わったのかも。
667 :
名無し~3.EXE :2009/02/22(日) 12:23:47 ID:SkcfhcvO
やっぱり ID:EAxFZnqE=ID:gL1o+Wdaだったかw
たぶんそうじゃないかなと思ってたが
刺激してやれば自白すると思ったら馬鹿はすぐ反応した
>>665 だから何?バグっぽい現象をいくら連ねても
環境変数にセットできなければ同じ
@echo off
echo うるせー馬鹿|(set /p xxx=>NUL & call echo %%xxx%%!)
goto :hell
:hell
set xxx
環境変数 xxx が定義されていません
:hell十<
つまり、パイプの後ろは新しい環境になるってことだよね?
パイプの前も for/f inの中も
set x1=a|set x2=b for /f %i in ('"set x3=c"') do rem set x
君の役に立たない知識はどうでもいいから。
俺はトリビア大好き
674 :
名無し~3.EXE :2009/02/22(日) 22:43:37 ID:SkcfhcvO
今日のトリビア 石川県では味噌汁にキュウリを入れる
>>665 なので callはいらない echo %%xxx%%だけでいいよ
なるほど ありがとうございました
forでテキストの区切り文字を置き換えたはずなのに 一向にカンマで区切られるなあと思ってたら callで引数渡す時に区切られるのねorz 数時間悩んで色々調べてた俺ナサケナス(´;ω;`)
はぁ?
自演乙でよろしいか
凝ったことをしたいならPowerShell使えってMSの偉い人が言ってた
まっ多少なりとも応用力がないと役に立たんみたいやね
WinXPProSP3で質問があります。 コマンドラインで、バッチファイルを実行して、 executeprogramA.exe executeprogramB.exe というようなバッチを実行する場合、Aの終了を待たずに、Bを実行する場合には、なんとオプションをつければよいのでしょう。 どなたかご教示いただけないでしょうか。
A.exe | B.exe
サイズが0バイトのファイルを作成するには? と聞かれて最低2つは答えたいたいところ。
>>692 ひとつは常用している
type nul > file
だが、もう一つがサッパリ思いつかない…
ひとつあれば十分
find "" nul>file sort<nul>file copy nul file setlocal>file endlocal>file prompt>file pushd>file popd>file shift>file title>file goto>file rem.>file del>file cd.>file md>file rd>file fc>file />file
set/p=<nul>file
やっぱり、ひとつあれば十分
echo "ひとつあれば十分" 2> file
bakatare>file shine>file kichigai>file … 以下無限に続く
copy /y nul file だろ? type nul >file との違いが分かってる?
701 :
名無し~3.EXE :2009/03/03(火) 14:49:16 ID:T/rbKhLB
∩___∩ /)
| ノ ヽ ( i )))
/ ● ● | / /
| ( _●_) |ノ /
彡、 |∪| ,/ ID:gL1o+Wda=
>>654 =
>>700 がまた出てきたクマー
/ ヽノ /´ 注意するクマー
702 :
名無し~3.EXE :2009/03/03(火) 15:05:24 ID:Ef765FLz
wwwwwwwwww
703 :
名無し~3.EXE :2009/03/03(火) 15:16:05 ID:T/rbKhLB
例文 700はいつものやつ だろ? ばれてるの 分かってる?
また見えない敵と戦ってるのか
705 :
名無し~3.EXE :2009/03/03(火) 22:33:49 ID:eME3ijGV
汚点だから見えないことにしたいわけね
俺には見えるぞ
こいつは
>>693 でおとぼけ参戦
>reg query ... |set /p XXX=
動作しないって指摘うけても平気のへーさで
>具体的にどう書いたの?
>応用ができないの?
馬鹿の癖に上から目線が特徴
文章はなぜか疑問系で?止め
自分で書いたものの動作も確かめてない超手抜き
>>639 は動いてるだろ?
>648は応用だろ?
どうしたの?
結局結論は
>>670 >>671 だったがこの時はすでに逃亡
まあ、見えないことにしたいわなwww
>693 それ一つで充分だとは思うよ。Win95〜XP共通だし、Vista(俺は持ってないから未確認だが)以降でもできるんじゃないの? 逆にもう一つのほうは9x系ではできなかったような…
ひとつで十分だけど3つ目はあるのかな? >はまとめて2つ目
FOR %%I IN (*) DO IF %%~zI==0 DEL %%I ゴミ掃除に
>709 sort NUL /O file
>>676 callは必要
>>665 @echo off
setlocal
set xxx=
が必要
Win2000で使える標準入出力とクリップボードをやりとりできるコマンドってありますかね?
Win2000標準てことならmshta.exeが使えたと思う
フリーソフトとかでもいいから dir|clipboard clipboard /paste みたいな感じで手軽に使えそうな奴
Cygwin には /dev/clipboard があった希ガス
>>700 ファイル再作成or更新? これが意外なんだよね
more <file >file more <file >>file
722 :
713 :2009/03/13(金) 17:47:13 ID:jtK01iaW
自己解決しました
723 :
688 :2009/03/17(火) 16:07:04 ID:OysOwSHQ
自己解決しました
724 :
709 :2009/03/17(火) 20:09:00 ID:DuWG4BCo
自己解決しました
自作自演しました
自作自演乙
DOSKEYマクロをバッチファイル内で実行できますか かわりに質問してやったぞw 答え:できません
728 :
初心者な梨 :2009/03/18(水) 17:29:05 ID:1TDARhEw
OS:XP 以下の内容のバッチが思ったように振舞いません。 PCの基礎データをテキストファイルに書き込もうとしているのですが、、、 他板でこちらを紹介してもらいました。 Set MFN=PCData.txt Set MFA=%~dp0%MFN% Doskey Put = Echo $1 $g$g %MFA% Put ComNameIs%COMPUTERNAME% Put OSIs%OS% Put UserNameIs%USERNAME% Put --------------------------------------------------------- pause 「doskey /macros」を実行すると次のように表示されます・・・ Put=Echo $1 $g$g G:\PCsData\PCData.txt
729 :
初心者な梨 :2009/03/18(水) 17:32:44 ID:1TDARhEw
>>727 オレより早いwww
そうですか・・・どうも、お手数おかけしてすいません、ありがとうございました。
できんこともないが、あえてやるほどのこともないな
call :Put ComNameIs%COMPUTERNAME% goto :eof :Put Echo %1 >> %MFA% goto :eof
あまったHDDを売ろうと思うのですが売る前にHDDの消去も含めて消すために使いたいのですが 以前どこかのスレでコマンドプロンプトを使って大きなファイルを作れると聞いたのですが コマンドがわからないのですが教えていただけますか?
どこのメーカーのドライブよ? ディスクメーカーの出しているツールで簡単に丸ごと消去できるぞ ちなみにWindowsならCipherコマンドか
大きなファイルを作るならfsutil
>>733-734 ありがととうございます。
消去ソフト使うことにします。fsutilコマンドありがとうございます。
fsutilじゃ意味無いって
makedummy で巨大なダミーファイルは作れるが消去向けって感じじゃないな。 ハードディスク 消去 ユーティリティ あたりで検索してみたら
dban最強
xpなんですが、コマンドプロンプトからショートカットの作成とかできないですかね? 指定ディレクトリ配下の条件にマッチするファイルだけ、特定ディレクトリに、ショートカットを作成するということを自動化したいわけです。
つwscript.shell
>>735 fsutilは一見速攻で巨大ファイルが出来るように見えるが、
実際はファイルテーブル上で領域を予約してるだけなので
データは何も書き込まれてないよ。
ところがどっこい、出来上がったファイルを別ドライブにコピーしたり、 ネットワーク経由(FTPとか)で別マシンに移したりした場合は、 実容量のあるファイルになるんだけどね。
fsutil file createnew c:\hoge 1000 echo.>>c:\hoge
745 :
名無し~3.EXE :2009/03/21(土) 18:35:46 ID:zo99RvEA
マクロ内で環境変数って使えるんですか
試せば?
747 :
名無し~3.EXE :2009/03/21(土) 18:52:45 ID:zo99RvEA
745すいません、まちがえました。 こんなマクロを作ってみたんですが、 Put=If Not $2=="" (Set PutTo=$2) $t Echo $1 $G$G %PutTo% させたいことは、 ・1つ目の引数を環境変数PutToが示すファイルにアペンドする。 ・ただし、2つ目の引数がある場合にはPutToをそれで上書きし、そちらにアペンド。 です。 どうして動かないのでしょうか、、、
$2=="" ()
749 :
名無し~3.EXE :2009/03/21(土) 19:26:30 ID:zo99RvEA
>>748 そこで改行すればいいという意味ですか?
750 :
名無し~3.EXE :2009/03/21(土) 19:42:01 ID:zo99RvEA
>>748 改行したら「無効なマクロ定義です」になってしまいました、、、
$2=="" はどういう意味? () はどういう意味? それとさせたいことはあってる?
752 :
749 :2009/03/21(土) 20:39:23 ID:zo99RvEA
「$2==""」は2つ目の引数に入力が無かったら、 「()」 は IF式が真でなかったら中身を実行、というつもりでした。 Echo 何々>>ファイル を簡単にできないかと思いまして、、、 何分初心者なもので・・・
「$2==""」は2つ目の引数が""だったら、にしかならないだろ? '$2'==''とか set /a 1+2*3 は9にならないだろ? set /a 1+(2)*3 にしてもだめだろ?
754 :
名無し~3.EXE :2009/03/21(土) 22:43:22 ID:nKCXSOHP
馬鹿の癖に上から目線が特徴 文章はなぜか疑問系で?止め←←←
疑問形だろ?
いつもの人か
758 :
名無し~3.EXE :2009/03/22(日) 05:27:41 ID:C0sGSxF8
いつものやつですね ここに常駐してるらしく 誰かが書いたら真っ先に反応するのがこいつ
ハテナ君と名付けます?
age君 vs はてな君
はてなさんはどういう分野に詳しいんですか。
ageさんはどういう分野に詳しいんですか。
次スレこれでいこうか 【?君と愉快な仲間たち】初心者から管理者まで必読だろ?コマンドラインだろ?(DOS Pt 8だろ?どういう意味?)
764 :
名無し~3.EXE :2009/03/23(月) 06:39:49 ID:kHScheBd
「試せば? 文字数制限で受け付けないだろ?」 とか返しそうだなww
独りで楽しそうでなによりだ
766 :
名無し~3.EXE :2009/03/24(火) 10:05:21 ID:ElKMUpxM
どういう意味? 楽しいの? ひとりじゃないだろ?
おい、Vista持ちのお前ら。 -------------- echo %~dp0 pause -------------- 上記の内容を書いたバッチファイルを USBメモリのルート(=Fドライブとする)に保存し、 右クリック→「管理者として実行」を選ぶと、 実行結果はどうなる? 素直に、F:\か? それとも、C:\Windows\system32か?
///) /,.=゙''"/ / i f ,.r='"-‐'つ____ さっさと答えろや! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ /
加勢じゃないだろ? 試せば?
>>771 環境がないから聞いてるんだよ。
馬鹿か?
おい、Vista持ちのお前ら。 -------------- echo %cd% pause -------------- 上記の内容を書いたバッチファイルを USBメモリのルート(=Fドライブとする)に保存し、 右クリック→「管理者として実行」を選ぶと、 実行結果はどうなる? 素直に、F:\か? それとも、C:\Windows\system32か? ---------------------------------- だろ?
試してないけど、予想される結果は、 ---------------------------------- %~dp0 F:\ %cd% C:\Windows\system32 ---------------------------------- だろ?
そいでもって、この問題のソリューションは、 cd /d %~dp0 だろ?
なるほど ありがとうございました
もう試さなくてもいいのか?
PCかOS買って環境できたんじゃないか?
なるほど
誤爆?
PHPでDOSのコマンド実行して ブラウザに結果を表示できるようになったんだけど、 ブラウザに表示して、何かおもしろい DOSのコマンドって、なにかある? pingはもうためした。
ant とか make とか
tracertだっけ?経路出すやつ
ifの比較演算子GTR使ったバッチでどうも一部挙動がおかしいと思って観察してみたら if "10" GTR "3"みたいなときの、文字列1の部分が10〜29の範囲の場合に 真偽が逆転してやがる、なんだこれ・・・ ともったら""取ってif 10 GTR 3みたいな書式にしたら問題なくなった。ナニコレ、文字コード関係?
if/?読めないのか? |この比較は汎用であり、文字列1 と 文字列2 が両方とも数字だけを含む場合 |は、文字列が数値に変換され、数値の比較が行われます。 "は数字か?ぼけ
ふむふむ、しかしなんで特定の値のときだけこういう挙動になるの?
sort
文字、文字列の大小比較のことか? if a gtr b 一般には照合順序とか言ってロケール(地域)によって決まってる。 手抜きのアプリの場合は文字コード順のこともあるが。 ifがどっちかは知らん。 たぶん手抜きだと思うが、その場合、UnicodeかSJISか、これも知らん。
sort/? /L[OCALE] ロケール 指定されたロケールでシステム既定のロケールを 上書きします。""C"" ロケールは、最も速い照合 シーケンスに従います。現在指定できるロケール は ""C"" のみです。並べ替えは、常に大文字と小 文字を区別します。
おぉ、口は悪いが親切なお方。よくわからんかったがサンクス。
>>783 cal
カレンダー出すやつ、unixコマンドのDOS版
昔々の大昔だけど、URLの?の後の引数をコマンドラインとして実行して 結果を表示するCGIをバッチで作ってみたことがあったなぁ。 NT4.0のOption PackでIISだかPWSだかインスコしてあれこれいじって 遊んでたころだから、もう10年くらい前か。 無論遊び用で外に晒すようなことはしなかったけどね。
もしファイル名に一が含まれていたらoneを、二が含まれていたらtwoを%name%に格納する みたいなことをしたいんですが、どうすればいいんでしょうか ifとrenだけで出来ますか
%name%入れてrenameしたいのか ちょっと難があるが簡単にやればこんな感じとか @echo off for %%N in ( * ) do call :sub "%%N" exit :sub set name=%1 set name=%name:一=one% set name=%name:二=twu% set name=%name:三=three% ren %1 %name%
>>786 100〜299 でもおかしくなるでしょ? (当然 1000〜2999, ... も)
両方文字列の時は単純に先頭の文字から比較してるだけ。
ちなみに俺の知ってる限り "0" < "1" にならないロケールは存在
しないから、ロケール云々には影響されないはず。
>>795 そもそもそのファイル名というのはどうやって与えられるの?
%name% 格納するだけなのに ren ってどういうこと?
一も二も含まれない時や、両方含む時はどうするの?
とりあえず、変数 %name% に 一 を含むかどうかは
if X%name% == X%name:一=% ...
みたいにすればできる。
>>786 twu ...
799 :
>>797 :2009/04/11(土) 23:43:10 ID:KtNiKCTG
800 :
795 :2009/04/12(日) 00:34:37 ID:P4MqkGz2
>>796 ,797
ごめんなさい。もっとちゃんと書きます。
録画したtsファイルをd2vとaacに分離するときに、D&Dしたtsのファイル名によって、出力するd2vとaacのファイル名を変えたいんです。
例えば、ハヤテのごとく!! 第02話 「マネーのとら」.tsをD&Dしたらhayate2_02というファイル名でd2vとaacを出力。
けいおん! 第01話 「廃部!」.tsだったらファイル名がk-on_01のd2vとaacを出力。
みたいな感じでやりたいんです。
基本、ファイル名は『〜"アニメタイトル" "話数" "サブタイトル"〜.ts』の順になっているので、
その"アニメタイトル"からhayate2部分、"話数"から02部分を判断出来るかなと思ったんです。
自分のイメージとしては
D&Dしたファイルの名前の中に"ハヤテのごとく!!"があれば%name1%にhayate2を格納。
第*話の部分の*を%name2%に格納。
出力するファイル名="%name1%_%name2%"="hayate2_02"
"ハヤテのごとく!!"の部分は他のタイトルの場合もあり。(けいおん!→k-on、戦国BASARA→basaraなど)
こんな感じなんですが、伝わったでしょうか。。
すみません、長くなってしまいました。
ちゃんと説明するとスレチな内容になってしまうかなと思ったんですが、ごめんなさい。。思い切ってちゃんと書きました。
まあ何故そんなことをするかというと、録画した生データはしっかりしたファイル名をつけたい、でもエンコの中間ファイルが全角半角の混じった長ったらしい名前だと面倒、さらに自動でそこまでやってくれたら楽、というどうでもいい理由なんです。
ホントごめんなさい。どなたかお願いします。
801 :
名無し~3.EXE :2009/04/12(日) 00:52:03 ID:5au32IgI
典型的な後出し厨か
802 :
名無し~3.EXE :2009/04/12(日) 00:53:45 ID:5au32IgI
>>799 誰にモノ喋ってるんだダボ
IDの見極めも出来ないならROMてろ
803 :
>>797 :2009/04/12(日) 08:33:42 ID:uWDKvQuo
>>800 やってやれんことはない。
ただファイル名に "第" "話" が含まれるとすぐ破綻するが...
call :sub "ハヤテのごとく!! 第02話 「マネーのとら」.ts"
call :sub "けいおん! 第01話 「廃部!」.ts"
goto :eof
:sub
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=第話" %%a in (%1) do (
if "%%a"=="ハヤテのごとく!! " set Title=hayate2
if "%%a"=="けいおん! " set Title=k_on
echo !Title!_%%b
)
endlocal
>>802 レス番と ID の区別もつかないならROMてろ
文字列中に!があると setlocal enabledelayedexpansion と相性悪いよ
805 :
>>797 :2009/04/12(日) 18:51:42 ID:uWDKvQuo
まあそれは事実なので、俺なら vbs とかでやる。
正規表現が使えるから
>>803 よりもう少しまともな
チェックができるし。
ちょっと調べたけど分からなかったので質問。 logman コマンドでカウンタログを作りたいんですが、-configオプションの使い方がイマイチ分かりません。 -configオプションでファイル指定したら、カウンタログ自体は作成されるけど設定が全部デフォルトになります。 ヘルプ見ても詳細は書いてないし、、、 指定するファイルは、ただオプションを羅列するだけではダメなんですかね?
DOS版まだー?
wsh使ってもいいならできそうだけど
812 :
名無し~3.EXE :2009/04/19(日) 10:19:29 ID:qlrZUhdI
ログオンスクリプトでatコマンドが動かねー! っていろいろ調べてたけど そもそも管理者権限が必要なのね そりゃダメかチクショー 何か別の方法考えないとなー
runas
それは無理だろ
質問です。 例として、バッチファイルを実行するとa.htmlを指定したプログラム 例えばメモ張でを実行すると開く形に するにはにどう書けばいいでしょうか? Googleで探してみたんですが、なかなか見つかりませんでした。
それはつ理だろ
>817 エクスプローラで、スタートメニューまたはデスクトップのフォルダ内にある各プログラムのショートカットを、 右クリック→プロパティ→[リンク先]の欄の内容をバッチファイルに書き写し、その後ろに空白で区切って 開きたいファイル名を続けて書く。場合によっては>819と併用するといい。 ↓例えば、こんな具合。「C:」やら「\」の意味合いは、エクスプローラをしばらく使っていれば、おおよそ見当つくだろ。 "C:\WINDOWS\NOTEPAD.EXE" "C:\My Documents\sample1\a.html"
C:\WINDOWS\NOTEPAD.EXE C:\My Documents\sample1\a.html だろぼけ
あれ? C:\WINDOWS\system32\NOTEPAD.EXE じゃないの?
みりゃわかるだろぼけ
>>ID:sxyqTq+t 池沼降臨w
825 :
817 :2009/04/21(火) 18:52:28 ID:aBQG/tCi
また文末?男が出てきてる
また文末w男が出てきてる
where notepad
質問ですが、 c:\abc\a.exeを caclsコマンドで削除等は拒否して、 読み込みのみを許可したいのですが、 cacls c:\abc\a.exe /C /P ユーザー名:R ですが、できませんでした。 どうしたらできるのでしょうか?
'where' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
行き当たりばったりに色んなツールを入れてロクに管理もできていないと、
>>829 みたいな奴が誕生する。
きっとwhereも、C:\WINDOWS\system32に放り込んでるんだろうw
その認識はさすがにそろそろ恥ずかしいレベル
>>832 気をつけろよ
>>829 はここに粘着してるキチガイだから攻撃してくるぞ
まあこいつに攻撃されても痛くも痒くもないけどな
と思ったらもう出てきてた?
(・∀・)ニヤニヤ
for %I in (%path%) do @if exist %I\notepad.exe echo %I\notepad.exe
>>836 こんなのもありだったりする
for %I in (notepad.exe) do @echo %~$PATH:I
839 :
名無し~3.EXE :2009/04/24(金) 20:37:55 ID:xQc+2J4Q
マヂレスしとくと、whereはVista/2008以降で追加されたプログラム。昔はリソキにもあった
>>839 Vistaのシェア知ってるか?それとその昔のなんとかを足しても
XPで個別に入れてるうんぬんは関係ない
現行PCのほとんどは対象じゃないから
>>829 のようなのは妥当ではないんだよ
>>831 のように返されて当たり前
ここは我慢
笑うのを我慢すんのか?無理wwwww
?そんなにみんなのパソにはwhereが元から入ってるのか? whereの別途配布場所は知ってるがdirで代用できるし入れてないが
844 :
名無し~3.EXE :2009/04/24(金) 23:30:33 ID:FjY0+C8E
ここは我慢
846 :
名無し~3.EXE :2009/04/24(金) 23:59:19 ID:FjY0+C8E
制限付アカウントでコマンドラインで、自分の制限付アカウントをAdministratorsに できないでしょうか?
>>847 制限つきアカウントでログオン
↓
コマンドプロンプトを起動
↓
echo FUCKYOU > C:\fuck.txt
↓
Cドライブを開き、メモ帳でfuck.txtを開く
↓
確認したらゴミ箱に捨てる
↓
PCをシャットダウン
↓
窓からPCを捨てる
↓
新しいPCを買ってくる
↓
初回起動時、制限つきアカウントと同じユーザー名を設定
↓
いつの間にかAdministratorsグループに
>>847 制限付アカウントから管理者権限でコマンドラインを開くことができれば
net groupで変更できる
>>850 ありがとうございます。
では、
制限付アカウントで
1.bat[管理者権限で2.batをコマンドラインで実行するコマンド】を開いて
2.bat[レジストリなど、管理者権限で操作】は可能なんでしょうか?
コントロールパネルでやれよ。
>>851 セキュリティの設定が緩ければ可能だが、そうでなければ不可能
>>853 ありがとうございます。
制限付アカウントで、
セキュリティの設定が緩い状態では可能なんですか。
では、その可能な場合のコマンドは、どういった風にすればいいでしょうか?
すみませんが、教えていただけると嬉しいです。
>>ID:+WSKFSMw 実にマナーの悪い慇懃無礼な奴だな。
ある名前が似ているファイル群(pdf)を分類リネーム作業をしています ファイル名の構文が同じで表面上は区別がつかないが エクスプローラの詳細表示だと「作成者」のところで区別が出来ます このリネーム作業をバッチファイルにするとき「作成者」情報はどうやって取得できるでしょうか?
自己解決しました。857は撤回します。
つっこみどころが多すぎる
撤回してる文章までいちゃもんつけようというキチガイが生息しているスレです
dir /q
所有者と作成者の区別がついてない○鹿
mshta vbscript:execute("createobject(""scripting.filesystemobject"").getstandardstream(1).writeline(createobject(""shell.application"").namespace(""%~dp1"").items.item(""%~nx1"").extendedproperty(""docauthor"")):close:")|more
なるほど
FOR %%I IN (*.txt) DO IF %%~zI==0 DEL %%I
>>865 FOR %%I IN (*.txt) DO IF %%~zI==0 DEL "%%I"
or
FOR %%I IN ("*.txt") DO IF %%~zI==0 DEL %%I
なるほど
start foo.lnk は開けて start bar baz.lnk start "bar baz.lnk" は開けないんだけど スペース入りショートカットってどうやって開けばいいの?
"bar baz.lnk"
start bar^ baz.lnk
871 :
名無し~3.EXE :2009/05/10(日) 16:22:50 ID:m6//MVbt
WindowsXPEnbeddedでコマンドプロンプトでtaskkillとshutdownのコマンド を使いたいのですが、内部・外部コマンドのエラーとかでて使用できません。 試しに、taskkill.exeをxpproからコピーしたのですが、それでも使えません どうすればいいでしょうか?
Embedded開発環境でtaskkillやshutdownコマンドが入ったコンポーネントを 入れてビルドし直せばいい
start file:"%cd%\bar baz.lnk"
start file:"bar baz.lnk"
start .\"bar baz.lnk"
start file:bar%20baz.lnk
877 :
名無し~3.EXE :2009/05/10(日) 22:19:26 ID:m6//MVbt
おまえにはむりだからあきらめろ
879 :
名無し~3.EXE :2009/05/11(月) 20:56:36 ID:SA2ZEr46
taskkillコンポーネントのダウンロードってどこのサイトできます? ネットで調べてもでてこないのですが
pskillにしたら
なるほど
対処法が書いてないね
それに空白がなくても起きるんだけどね
886 :
名無し~3.EXE :2009/05/14(木) 13:41:53 ID:mNw56pLj
すいません、質問をさせて下さい. 名前がランダムでつけられているファイルを連番のファイルにするバッチファイルを 作成しようと思うのですがいどうしたらよいでしょう? 当方 win vista bissness for %i in (*.jpg) do ren %i 00%i.jpg をするとファイル名が狂ってしまいました
for %i in (*.jpg) do echo ren %i 00%i.jpg ってやって何がどうなってるのか調べてみたら。 番号つけるなら set num=1 set /a num+=1 とやって%iと別に管理しないと駄目。 set num=0 for %i in (*.jpg) do ( set /a num+1 ren %i %num%.jpg ) とかやればいけるんじゃね。 001に展開するのは無理なので 100, 1000から始めるか文字列処理をやりくりして0で埋める処理が必要になる。 と長々書いたがforの中で%num%とかやると駄目なんだったかw
renしたものを再度renしてぐるぐる
889 :
名無し~3.EXE :2009/05/14(木) 14:14:59 ID:mNw56pLj
>>887 たしかにw
>>と長々書いたがforの中で%num%とかやると駄目なんだったかw
ダメなんすか?
遅延展開
891 :
名無し~3.EXE :2009/05/14(木) 17:17:18 ID:mNw56pLj
>>890 すいません、せっぱ詰まってるんでもっと詳しく教えてくれませんか?
ファイル名 連番 バッチファイル でぐぐればサンプルが見つかるが?
これでいけるだろ。0000.jpg、0001.jpg、…とリネームする @echo off setlocal enabledelayedexpansion set NUM=0 for %%f in (*) do ( call :PADZERO4 !NUM! ren %%f !RC!.jpg set /a NUM+=1 ) endlocal goto :EOF :PADZERO4 set RC=%1 :PADZERO4LOOP if not .%RC:~3,1%==. goto :EOF set RC=0%RC% goto PADZERO4LOOP
894 :
名無し~3.EXE :2009/05/14(木) 17:58:55 ID:mNw56pLj
>>894 for %%f in (*) do (
は
for %%f in (*.jpg) do (
に直してくれ
set n=10000 for %%i in (*.jpg) do (call ren "%%~i" %%n:~1%%%%~xi&set /a n+=1)
素直にPowerShellつかえって話だな
>>896 ()はいらね
>>888 の対策
for /f "delims=" %%i in ('dir /b *.jpg')
899 :
名無し~3.EXE :2009/05/14(木) 20:59:13 ID:mNw56pLj
あのー私ただの debian linux 使いなのであなた方のスキルにただただ感動する だけであります。 つまりあなた方のバッチファイルを実行すれはおkですか?
バッチだけに拘らず他のスクリプトと併用すればいじゃんと
901 :
名無し~3.EXE :2009/05/15(金) 00:43:13 ID:kD2/yqom
>>900 いや、私はコマンドプロンプト初心者ですのでコマンドプロンプトを
学びたいのです
だかた教えてくれた方にはリスペクトしますお
お前に感謝されてもうれしくない
903 :
名無し~3.EXE :2009/05/15(金) 00:57:53 ID:kD2/yqom
素直に「他ソフトのインストールが会社で許可されない」と言えばいいものを…
905 :
名無し~3.EXE :2009/05/15(金) 07:54:56 ID:kD2/yqom
>>904 その通りです。ですのでバッチファイルどう作ったらいいか教えていただけませんか?
申し訳ありませんでした。
ミ ヽヽヽリリノノノノ 彡ミイ // '` ̄'ヾミ 彡ミi ) /|ミ ビシッ! 彡ミ〉 _,,,,,,,,, i,i ,,,,,_イミ __ rミi _-・- l-・-、シ 呼んだ? _____ /::/.{6〈ヽ、/ 、_|_, イ |::ロ::i---i::|'T''|::::|_.ヾ|/( ,-ー-、) |ー,,_ |:::::::::!_!_!∩::::::::::::::::::::ヽ.// ⌒-´ノニニニi=,=  ̄ ̄( < ̄ ̄ ̄ ̄< i\ __ノ>、 ' ノノ | ヽ/"~''ヽ⌒":L____ノ:::::::/⌒ヽ `、 ,' .,,_,,...ゝ:::=::|:::::::::::|:::=::( `、 ) ゝ _____ ノ|:●:llllエllll:::●|( ) )
907 :
名無し~3.EXE :2009/05/15(金) 10:04:42 ID:kD2/yqom
Win2000以降で使えるコンソール画面用のエディタ探してるけど 見つからないなあ
vim
edlin
>>905 for /?とset /?で大体わかるよ。
>>893 は正攻法だな。ただecho ren %%f !RC!.jpgはecho ren "%%f" !RC!.jpgに
する必要がある
>>896 は多少トリッキーだがシンプルで美しい。enabledelayedexpansionを使わずに
遅延展開を実現している部分は思いつかなかった。ここの住人には常識なのかな?
・このfor文ではカレントディレクトリの*.jpgを展開し%%iに代入してdo以下を処理する
・&はコマンドのセパレータなので実行文は次のふたつ
call ren "%%~i" %%n:~1%%%%~xi (1)
set /a n+=1 (2)
(1)
・"%%~i"は"%%i"でよい。空白などを含む場合を考慮して""でくくる必要がある
・%%n:~1%%はここで展開されないために%を%%としている
・%%~xiは%%iの拡張子(.含む)に展開される
・よってcall ren "ファイル名.jpg" %n:~1%.jpgとなる
・%n:~1%はnの先頭1文字以下に展開される(10000なら0000、10001なら0001)
・よってren "ファイル名.jpg" 0000.jpgが実行される
(2)
・nをインクリメントする(10000なら10001)
913 :
名無し~3.EXE :2009/05/15(金) 23:08:01 ID:kD2/yqom
>>912 なんだか難しそうw
なんか他に簡単な解説ない?
Name=ABxDE の変数があります echo %Name:*x=% ではDE echo %Name:x*=% ではABxDEになってしまいます。 正規表現をどう使えばABを取り出せるのでしょうか?
そんなもんはねぇ
call echo %%Name:%Name:*x=x%=%%
出来ました!これを変数Name2にセットするにはどうすればいいのでしょうか?
call set Name2=%%Name:%Name:*x=x%=%%
貴方は名人ですか!?ありがとうございます!!!m(_ _)m
in=C:\hoge1\hoge2.txtという変数を echoでhoge2と返す場合どのようにしてやれば出来るのでしょうか
for /?
for %%i in (%in%) do echo %%~ni
%date% なみに簡単に翌日の日付を得る方法があれば教えてください。
%tomorrow%
set /a tomorrow=%date:~0,4%%date:~5,2%%date:~8,2%+1 月末は使用禁止な
powershell -command "(Get-Date).AddDays(1).Day"
そういえばこの前のWindowsUpdateにPowerShellあったな インストールはしてないけど
Win 7 ではデフォで入っているからよっぽど使わせたいらしい
その理屈でいうなら一番使わせたいのはWSHかコマンドプロンプトだろw
wshやcmdは他から依存されすぎていて消すに消せないだけだろ PowerShellが入っていなくても極端に困る人は出てこない
廃止されると泣きながら膨大な(w)スクリプト書き直す俺がいることにw
マイクロソフトにしてみたらwshやcmdは過去の成果物を搭載し続けるだけで経費もかからないし 止める理由は特に見当たらないから、今後も利用できるでしょ
最近ようやく慣れてきたけどPowerShellは便利だな。 cmdで文字列処理やfor文駆使したりしてると無理やりすぎて泣けてくる。 今までややこしいのはruby -x "%~0"してたけどPSも増えてきた。
XPの出た当時、 WSH が入ってないと極端に困る人っていたんか?
XPじゃないか、98か
937 :
名無し~3.EXE :2009/05/22(金) 14:02:43 ID:0lFjpJY6
で、それを聞いてなにをしようと 「いや〜あの当時は困りましたよ」 と聞いてあんたの生活に何か役に立つの?アンケートとってる意図がわからん
ん?
>>929 に対する間接的疑問だったんだが伝わらなかったか
まあアンタには聞いてないから
2ちゃんねるの利用とアンカーの推奨 >掲示板ではアンカーを付けてない書き込みは不特定多数向けと解釈される >誰か宛であればアンカーが必須 >2chではアンカーを付けていても、横からレスがばんばんつく >それがいやなら2chには来ないほうがよい
はいはい、必死だね。てか読解力無いねえ
お前には聞いてないてだれに聞いてるんだろう
>>941 いや、俺もそこがわからんかった
突っ込んでやろうと思ったがあまりに意味不明でww
>>942 しらん。本人に聞いてくれ
>>943 死ねカス
あらあら、感情的になっちゃって
誰には聞いてないが誰には聞いてるとかめんどくせええやつだな 後だしじゃんけんで言わずに最初からそう書いとけよ
なにこの幼稚なおっさんスレ
めんどくせえならほっときゃいいのに
ま、MSが PowerShell をよっぽど使わせたいんだってことでいいよ
実際使うと便利だし。
>>934 には全く同意しとく。
間接的疑問てなんだよ 無関係な疑問てことか
>>931 に対する反問とかいうならわかるが、しらん言葉つかうな
例えば標準でハードリンクやシンボリックリンクを作成する手段を未だにコマンドプロンプトのみに委ねてるのは MSがコマンドプロンプトを使わせたいからってことさ
それが一番手抜きできるからだろ
つまりよっぽどというほどにはPowerShellを使わせたいわけじゃないってこと
set /a tomorrow=%date:/=%+1
WSHやCMDって機能拡張してったっけ?
WSHはver5.6で打ち止め。cmdは地味に進化中
WSHは5.7だけど?
vbscriptとjscriptは5.8だね
あ
い
う
え
お
い
ろ
ID:ZrLSxUkQ 次スレ立てて準備してから埋めろやボケナス 暇があるならさっさと立てこい
は
971 :
名無し~3.EXE :2009/05/24(日) 08:01:36 ID:Jt5ddgc6
サンクス
確認したら、、、、、
明らかに板が違うだろ
976 :
名無し~3.EXE :2009/05/24(日) 12:03:54 ID:OdqEMMPR
バカ晒しage 972 名前:名無し~3.EXE :2009年05月24日(日) 08:19:36 ID:ZRBXAVmN サンクス
977 :
名無し~3.EXE :2009/05/24(日) 12:11:01 ID:J07+u5Pg
質問したいが梅荒らしの前に埋没しそうだから諦めるp
980 :
名無し~3.EXE :2009/05/24(日) 15:55:58 ID:OdqEMMPR
すぐ解決するようなネタなんだろう
うん