初心者〜管理者まで必読!コマンドライン(DOS Pt.8)

このエントリーをはてなブックマークに追加
1名無し~3.EXE
適材適所で GUI と CUI を組み合わせて、 (゚д゚)ウマー

DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。

質問も歓迎だけど、自分で調べて勉強する努力も忘れずに。

前スレ
初心者〜管理者まで必読!コマンドライン(DOS Pt.7)
http://pc12.2ch.net/test/read.cgi/win/1217738171/
2名無し~3.EXE:2009/05/24(日) 12:12:45 ID:J07+u5Pg
3名無し~3.EXE:2009/05/26(火) 03:13:24 ID:mD4e5/jg
srh ファイル内容検索コマンド
http://www.hir-net.com/soft/win/srh.html
4名無し~3.EXE:2009/05/26(火) 03:19:53 ID:OBkD1YXH
あげ
5名無し~3.EXE:2009/05/26(火) 08:17:24 ID:u9nnF59y
NT版UNIX-like tools Version 0.14
http://www.piedey.co.jp/softs/ntuxtl014.html
6名無し~3.EXE:2009/05/26(火) 08:28:35 ID:25sTC0KO
>>5

これとどう違うの
ttp://unxutils.sourceforge.net/
7名無し~3.EXE:2009/05/26(火) 18:56:40 ID:3oDYyUze
fc/?
8名無し~3.EXE:2009/05/27(水) 17:13:14 ID:IeTG/H22
findstrやsed、grepなどで \ や " を使いたいのですが、
表示はできるのに、 > fin.txtとリダイレクトすると永遠に処理待ちやエラーになってしまいます。
|FINDSTR: 開くことができません (fin.txt)

|grep: >: Invalid argument
|grep: fin.txt: No such file or directory

*nixなどのエスケープ文字としての \ と、コマンドプロンプトとは異なるのでしょうか?
にしても、リダイレクトにするとエラーになるのがイマイチわかりません。

" を試していた時の hoge.txtは、こんな感じです。
"hoge"
"moge"
moge
hoge
[EOF]

試したコマンドラインは、こんな感じです。
c:\>grep "hoge\"" hoge.txt > fin.txt
c:\>grep "hoge\"" hoge.txt > fin.txt
c:\>grep "hoge\""" hoge.txt > fin.txt
c:\>grep "hoge^"" hoge.txt > fin.txt
c:\>grep "hoge^""" hoge.txt > fin.txt

正しいコマンドラインを教えてください。よろしくお願いします。
9名無し~3.EXE:2009/05/27(水) 17:57:53 ID:bcbvf9/w
grep hoge^" hoge.txt > fin.txt
grep ^"hoge\^"^" hoge.txt > fin.txt
108:2009/05/27(水) 20:38:00 ID:IeTG/H22
>9
できました!ありがとうございます。
コマンドプロンプトのエスケープ文字が ^で、コマンドラインとして与える時には、
キーワードの対象文字全てに ^しておけばいいんですね!間にスペースを挟む場合も、これでいけました。
|C:\>grep ^"hoge hoge\^"^" "hoge hoge.txt" > "fin hoge.txt"

こっちの例ではダメでした。処理待ちになってしまいます。動作確認は、XP/Vistaで。
|c:\>grep hoge^" hoge.txt
|c:\>grep ^"hoge hoge.txt

別件。
move hoge.txt temp
move moge.txt temp
(しかも、tempディレクトリを作り忘れたまま)で、やってしまいました。
コマンドラインだと、上書き確認されるので、batにも、そのまま書いてたら…
batの場合は明示的に/-Yつけてないと、確認無いんですね…。

油断してました。いや、こんなコトに今まで気づかなかった自分が情けない。
11名無し~3.EXE:2009/05/28(木) 14:50:18 ID:rjF1CB1L
@echo off
setlocal enableextensions enabledelayedexpansion
set t=abcdefg
echo !t:~0,4!
if !t:~0,4!==abcd echo !t:~0,4!

実行結果
abcd
4!==abcd の使い方が誤っています。


何でこうなるのかさっぱり分からないです…
何か根本的な勘違いをしているのでしょうか?
12名無し~3.EXE:2009/05/28(木) 18:57:28 ID:A/EjCJLr
一応今の状況を解説すると

こんな何時間も誰も相手にしないということは警戒されてる時

if "!t:~0,4!"=="abcd" echo !t:~0,4!

でいけるだろ、と書いたら
「そうじゃないんですよ、何でこうなるのかその理由を知りたいんですよ」
と牙をむいてくってかかってくる危険性が文章に仕掛けられている
それでみんな相手にしないと
まあそういうこと

>>11は直しかたもすべてわかった上でわざと聞いてる、と考えるのが妥当
13名無し~3.EXE:2009/05/28(木) 19:17:45 ID:U+1mTaXD
で?どういう意味?
間違いないの?
14名無し~3.EXE:2009/05/28(木) 19:20:53 ID:A/EjCJLr
知らんがな
勝手に想像すればいいだろ
思うのはタダなんだし
15名無し~3.EXE:2009/05/28(木) 19:46:08 ID:HudDQAtG
if !t:~0^,4!==abcd echo !t:~0,4!
16名無し~3.EXE:2009/05/28(木) 19:57:37 ID:HudDQAtG
if a;,=a echo a
17名無し~3.EXE:2009/05/28(木) 20:01:15 ID:rjF1CB1L
>>12
> 「そうじゃないんですよ、何でこうなるのかその理由を知りたいんですよ」

この部分は多分にあるけれど

> >>11は直しかたもすべてわかった上でわざと聞いてる、と考えるのが妥当

これは無いです。

>>15で行けるのは分かったがなぜエスケープしなければならないのかが疑問。
if文でカンマって何を意味するんでしょうか?
ヘルプにはそれに関することは何も書いてないし…
18名無し~3.EXE:2009/05/28(木) 20:02:37 ID:rjF1CB1L
ちなみに実際のif文はforの中に書いています。
結構何度もバッチ書いてるのに今まで引っかからなかったのが疑問な位ですが。
19名無し~3.EXE:2009/05/28(木) 20:05:48 ID:HudDQAtG
;,はトークンの区切り文字、スペース、タブと同じ
ttp://it-is-it.net/CMD/%C1%B4%C8%CC/%B9%BD%CA%B8%B2%F2%C0%CF/#content_1_12
20名無し~3.EXE:2009/05/28(木) 21:05:54 ID:rjF1CB1L
>>19
ありがたいです。
結構何年もバッチ書いてて初めて知ったようなw

>>12
さっきは気づきませんでしたが
> if "!t:~0,4!"=="abcd" echo !t:~0,4!
これじゃ駄目ですよね。
21名無し~3.EXE:2009/05/28(木) 21:49:39 ID:U+1mTaXD
いけますがなにか?www
22名無し~3.EXE:2009/05/28(木) 22:04:10 ID:FXpuass2
>これじゃ駄目ですよね。
牙をむいてくってかかってくる

はい予言的中ww


僕ちゃんなんねんもバッチ書いてまちゅー
けど、出来るかどうか自分では試すことはできません
              何年もバッチ書いいてる>>20
23名無し~3.EXE:2009/05/28(木) 23:28:01 ID:3fJykLbj
>>19に"で区切り文字をエスケープできるって書いてあるだろ
24名無し~3.EXE:2009/05/29(金) 00:16:02 ID:oLZd7y0B
>>19に挨拶して黙って消えりゃいいものを
ひねくれた根性の悪さが災いして一言反撃してやろうという魂胆が墓穴掘ったな

>これじゃ駄目ですよね
とうどういうこと
パソコン持ってないの?バッチ書いて動かせば1秒で結果でる
なぜ他人に質問してるの?2chに投稿してる暇があったら簡単にできる
数年のバッチ歴をひけらかす日本を代表するバッチ男なんだろ
試してないが「これに書いてるのはどうせ駄目なんだろう」と言う意味か
25名無し~3.EXE:2009/05/29(金) 00:29:10 ID:oLZd7y0B
じゃあバッチ野郎のAA頼む↓
26名無し~3.EXE:2009/05/29(金) 17:22:17 ID:w+z3gxif
if !t:efg=!==abcd echo !t:efg=!
if !t:efg^=!==abcd echo !t:efg=!
if "!t:efg=!"=="abcd" echo !t:efg=!
27名無し~3.EXE:2009/05/31(日) 19:28:11 ID:DR7uDBvl
for /f "deims=;" は"で=;をエスケープ
for /f deims^=^; でもおなじ
28名無し~3.EXE:2009/06/03(水) 02:51:38 ID:ck8yxly5
日ごとに生成されるログファイル(ファイル名が20090603.log等になってます)を
type *.log > hoge.txt
↑でhoge.txtににまとめようとすると昇順にまとまりますよね?
これを降順にhoge.txtにまとめたいのですが、どうも初歩的過ぎるようで参考になる情報がみつかりません。

どなたか教えてください。
29名無し~3.EXE:2009/06/03(水) 03:00:10 ID:J8ZwyB0P
dir/?
for/?
30名無し~3.EXE:2009/06/04(木) 10:52:38 ID:7MAETh4y
dir /b/on *.log
31名無し~3.EXE:2009/06/06(土) 15:03:51 ID:F7d/m+Rp
(for /f "delims=" %%I in ('dir /b /o-n *.log') do @type %%I) > hoge.txt
32名無し~3.EXE:2009/06/09(火) 10:59:57 ID:NQrs1Op8
過去ログの
初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
http://pc8.2ch.net/test/read.cgi/win/1116131036/789
でarghelperを改造してうpされたarghelper2をお持ちになっている方
いらっしゃいましたらどこかにうpしていただけないでしょうか?

うpされたスレの住人の方なら落とした方もおられると思い
書き込ませていただきました
よろしくお願いします
33名無し~3.EXE:2009/06/09(火) 23:39:25 ID:mt6Snbpi
longparmはどうよ?
34名無し~3.EXE:2009/06/23(火) 16:00:49 ID:ZVBQKxIb
コマンドプロンプトでプログラムの動作判定をしたいです
Operaが終了したらif/else文かなにか(?)で判定してProxomitronを自動終了
というような作業をするのが目的です
…が、if/else文はファイルしかサポートしてないようなので質問します
35名無し~3.EXE:2009/06/23(火) 16:25:30 ID:q4qio8Ql
> if/else文はファイルしかサポートしてないようなので

if /?
どこにファイルだけなんて書いてある?

そもそもif”だけ”で判断するようなもんじゃないが。
36名無し~3.EXE:2009/06/23(火) 16:40:43 ID:y/3TVaEz
>>35
if existのtypoだろ
>>34
for /f ... in ('tasklist /fi ...')
37名無し~3.EXE:2009/06/24(水) 22:29:20 ID:LRPaRqD+
cmdとPowerShellの中間が10年前に欲しかったよ。
WSHも使いづれーし意図的にGUI側に誘導しようとして
糞なまま放置したとしか思えん。
38名無し~3.EXE:2009/06/24(水) 23:21:28 ID:dzTfVbio
いや実際その通りだと思うが
39名無し~3.EXE:2009/07/01(水) 04:30:23 ID:Ld7/kfoM
ドライブレターがDのパーティションから、
ドライブレターだけ削除したいのですが、
どんなコマンドがありますか?

diskpartのremoveだとリムーバブルドライブしか駄目なようなので困っています。
40名無し~3.EXE:2009/07/01(水) 05:02:58 ID:Ld7/kfoM
そうでもないな。
シンプルボリュームでもいけたわw
41名無し~3.EXE:2009/07/13(月) 08:04:47 ID:OPDIBkI8
バッチファイルのfor文を使うときに、そのdo()の中で制御文--具体的にはif文--を
使う方法ってありますか?どうもif文の入れ子の要領でやってもうまくいかないようで。
42名無し~3.EXE:2009/07/13(月) 12:32:50 ID:mAS4nOkY
普通に出来るが。
推測するにif文のところが問題なんではなく変数展開の問題と思うが。

遅延環境変数展開って言葉知ってるか?
43名無し~3.EXE:2009/07/13(月) 14:11:35 ID:OPDIBkI8
レスありがとうございます

>遅延環境変数展開って言葉知ってるか?
知ってます。でも基本的に駄目なんです、それ使っちゃ。大体こんな感じです。

set move_dir=C:\hoge\
rem パス中やファイル名に!があるかもね
if not exist "%move_dir%%~nx1" (
for /f usebackq^ eol^=^ delims^= %%T in (`dir /b "%~dp1*%~n1*.*"`) do (ここでif not exist "%move_dir%%%T"ならmove "%~dp1%%T" "%move_dir%"とかしたい)
44名無し~3.EXE:2009/07/13(月) 14:12:36 ID:OPDIBkI8
やべ、最後に)足りてなかった
45名無し~3.EXE:2009/07/13(月) 19:52:22 ID:bBcl68LQ
moveはdefaultで上書きしないからifはいらない
46名無し~3.EXE:2009/07/15(水) 22:24:47 ID:+fkSyIOk
>>45
おぉそういえばそうか!とも思ったけど、move以外のコマンドを使う可能性も
十分考えられるので、自分なりにファイルパス中に()や!が含まれるケースの
操作方法について考えてみた。
------------------------------------------------------------
set move_dir=C:\hoge\
for /f usebackq^ eol^=^ delims^= %%T in (`dir /b "%~dp1*%~n1*.*"`) do (
set target_F=%%T
set target_P=%~dp1%%T
call :move_action
)
goto :EOF

:move_action
if not exist "%move_dir%%target_F%" (
move "%target_P%" "%move_dir%"
) else (
echo "%move_dir%%target_F%"は既に存在します、移動取り消し
)
goto :EOF
------------------------------------------------------------

うーん、前スレの特に後半あたりでよく出てきた用例に触発されて
最近callをよく使ったりしてるが、実に使いやすい・・・
47名無し~3.EXE:2009/07/16(木) 14:47:32 ID:SRbrJlc8
set move_dir=C:\hoge\
for %%I in ("%~dp1*%~n1*.*") do (
if not exist "%move_dir%%%~nxI" (
move "%%I" "%move_dir%"
) else (
echo "%move_dir%%%~nxI" は既に存在します、移動取り消し
)
)

これじゃ駄目なのか
48名無し~3.EXE:2009/07/26(日) 10:23:13 ID:2Xdbgl+/
コマンドラインから自分のグローバルIPを取得する関数はありますか?
ipconfig ではLAN内のローカルアドレスしか取れないので困ってます。

できればWindowsネイティブの関数、なければcygwinで使えるものを探しています。
49名無し~3.EXE:2009/07/26(日) 11:38:28 ID:AA+EcTwj
外にHTTPなりでリクエストを投げてレスポンスに
Request-Hostを出してくれるような外部鯖を使わないとまず無理

もしくはtracertであたりを付けるか
50名無し~3.EXE:2009/07/26(日) 18:13:06 ID:gQatFLJI
>>48
LAN環境でのグローバルIPはそのPCが持ってるわけじゃないから
PCでコマンド打とうが何しようが出て来ないさ
グローバルIPを持つのはルータのグローバル側のポートだから
Telnetでルータに接続してifconfig叩く位しかない
51名無し~3.EXE:2009/07/26(日) 19:02:24 ID:uPZ9W1tb
>>49-50
残念、ないんですね。
ありがとうございました。
52名無し~3.EXE:2009/07/30(木) 14:53:18 ID:z5/Qe4zH
超初心者の俺からの質問です。

treeやらdirでフォルダを一覧にする際に、
特定の階層まで(一階層下までなど)で、出力することはできますか?

たとえばtreeやると、ずらーーーと何階層も下のフォルダまで表示するじゃないですか。
それを一階層までにしたいときはなんて入力しますか?

誰かお願いします
53名無し~3.EXE:2009/07/30(木) 15:49:53 ID:gsmrRno3
以下のようなバッチファイルを作ればtreeで一階層だけ出力できると思うが
正直お勧めしない

@echo off
for /D %%a in (%1\*) do (
for /D %%b in (%%a\*) do (
rd /s /q %%b
)
)
tree %1
54名無し~3.EXE:2009/07/31(金) 02:42:25 ID:fPLWy6Es
自作自演は正直お勧めしない
55名無し~3.EXE:2009/07/31(金) 14:22:58 ID:aMNXwXZ0
ファイルが一つだけ入ったディレクトリ、というものがたくさんあり、
整頓してファイルをまとめた一つのディレクトリを作りたいと考えています。
ディレクトリのみを消してファイルを残すというコマンドや方法はあるのでしょうか?
56名無し~3.EXE:2009/07/31(金) 15:39:01 ID:fPLWy6Es
>ファイルが一つだけ入ったディレクトリ
>ディレクトリのみを消してファイルを残す
できない
57名無し~3.EXE:2009/07/31(金) 15:44:11 ID:agFRUhUi
bashかなんかの環境なら move ./**/* ./
でエラー吐きながらもやってくれた希ガス。
今は環境ないからわかんないけども。

コマンドラインでなくてもいいなら
移動とりどりでできる。
58名無し~3.EXE:2009/07/31(金) 17:17:20 ID:fdOz/WAg
>>55
発想を変えてWinRARを使ってオプションでフォルダ情報を格納しないにして無圧縮で固める
同名ファイルがないという前提だけどな

もしくはこんなのとか
http://download.goo.ne.jp/software/contents/soft/winnt/util/se475720.html
http://www.forest.impress.co.jp/article/2009/04/07/okiniiri.html
59名無し~3.EXE:2009/08/03(月) 12:52:09 ID:sXdkUTTq
あるフォルダに、…[1].jpg という名前のファイルが多数入っていて
これらのファイル名から[1]だけを外したいのですが、どうすればいいでしょうか?
60名無し~3.EXE:2009/08/03(月) 13:06:16 ID:cohpzHC7
位置が固定ならファイル名の3文字飛ばしてリネームが簡単。

位置が動くとちょっと面倒くさいな。
61名無し~3.EXE:2009/08/03(月) 14:32:01 ID:19p30T4e
ren ????.* ?.*
ren ?????.* ??.*
ren ??????.* ???.*
...
62名無し~3.EXE:2009/08/03(月) 16:38:29 ID:sXdkUTTq
>>60,>>61
ありがとうございます
63名無し~3.EXE:2009/08/03(月) 18:06:30 ID:tjheU55c
FOR /F "tokens=1,2 delims=[1]" %a IN ('dir /b') DO ren %a[1]%b %a%b
64名無し~3.EXE:2009/08/03(月) 18:18:30 ID:cohpzHC7
delims=abc は aとbとcを区切り文字にするっていう意味だよ。
abcという文字列が区切りになるわけじゃない。
65名無し~3.EXE:2009/08/03(月) 19:15:57 ID:19p30T4e
バッチで
FOR /F "delims=" %%a IN ('dir /b') DO (
set n=%%~na
call ren "%%~a" "%%n:~0,-3%%%%~xa"
)
66名無し~3.EXE:2009/08/03(月) 21:00:08 ID:tjheU55c
>>64
そうか、すまんかった(・ω・)
文字列の置換さえ出来れば[1]を/かなんかにして終わりなんだけど
67名無し~3.EXE:2009/08/03(月) 23:53:57 ID:sXdkUTTq
>>65でいけました。
ありがとうごさいました
68名無し~3.EXE:2009/08/04(火) 01:48:13 ID:2oemaiCU
タイムアウトを指定できるPAUSEコマンドのような外部ツールってありませんか

69名無し~3.EXE:2009/08/04(火) 02:09:19 ID:Xj0rup9j
>>68
Vistaならずばりtimeoutってコマンドがあるよ
70名無し~3.EXE:2009/08/04(火) 08:51:19 ID:bM8zLHQH
:?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
:Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
:?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN:~
@echo off
( setlocal
ren %0 %~n0.com
"%~dpn0.com" 5 5秒PAUSE
ren "%~dpn0.com" %~nx0
endlocal )
:~?aM!3"b3wvD[6%HF"6,IBt<[6j,I%0-2T`$,!tp"MdTpq36%H'LPi[6E%Iu<VPf0eH`!!^
:H7f-^e0f-Ptv9<\6wH)^-#]wf"-I%^f0f-5nvHrPevpoPKgf-<&^#]%Cf-]$Bf-?^H;f-*
71名無し~3.EXE:2009/08/04(火) 10:13:09 ID:846xHv3P
コマンドラインを極めるのが時間の無駄だってことがよく分かる流れだな
72名無し~3.EXE:2009/08/04(火) 21:11:07 ID:D+JSY9pz
>>71
日本語でOK
73名無し~3.EXE:2009/08/04(火) 21:12:06 ID:B0RbKmnK
わざわざcom2txt使うか?ぼけ
74名無し~3.EXE:2009/08/04(火) 22:34:54 ID:BsUs7qOy
>>73
折角>>70が釣り針垂らしてるのに、それを先に言っちゃ(ry
75名無し~3.EXE:2009/08/05(水) 19:29:52 ID:rdCan5z3
新出氏も相変わらずなようで
76名無し~3.EXE:2009/08/13(木) 03:58:40 ID:X1z/qzmZ
77名無し~3.EXE:2009/08/13(木) 10:44:15 ID:IWh15qa6
78名無し~3.EXE:2009/08/13(木) 17:48:46 ID:5/7LSkLb
start /wait rsm.exe refresh /lf"4mm DDS"
timeout 60
NTBACKUP BACKUP "@f:\backups\nightly backup.bks" /p "4mm DDS" /J "Nightly Backup" /l:s /m normal /HC:ON /UM /V:NO
79名無し~3.EXE:2009/08/13(木) 17:49:38 ID:5/7LSkLb
secedit /refreshpolicy machine_policy /enforce
secedit /refreshpolicy user_policy /enforce
80名無し~3.EXE:2009/08/18(火) 11:08:19 ID:a5HtPaWv
意外と知られていないコマンドプロンプトの便利コマンド一覧 windows - Knowledge Database IT
http://it.kndb.jp/entry/show/id/810
Tips for windows operations
http://www.naruto-u.ac.jp/~ito/tips/windows/win-tips.htm
81名無し~3.EXE:2009/08/26(水) 00:06:27 ID:5EG0if/A
すみません。お知恵をおかりできませんでしょうか?
二つのテキストファイル(111.txt、222.txt)の文字列を比較したいのです。

111.txt
-------
KB0001
KB0002
KB0003
KB0005
-------
222.txt
-------
KB0002
KB0006
--------

比較した結果は、KB0002のみが抽出されるようにしたいのです。
222.txtの内容を変数にSETして
FORでFCをまわしてやればいいのかとは思うですが・・・
すみませんがどうすればいいかアドバイスいただけませんでしょうか?
テキストファイルの内容を変数にSETする方法だけでもお教え願えませんでしょうか??
82名無し~3.EXE:2009/08/26(水) 00:30:30 ID:M28xOSr4
for /f %i in ( 222.txt ) do echo %i
83名無し~3.EXE:2009/08/26(水) 01:56:19 ID:5PJ1j7rD
@echo off
setlocal enabledelayedexpansion
for /f %%i in ('"type 111.txt 222.txt|sort"' ) do (
if "!x!"=="%%i" echo %%i
set x=%%i
)
84名無し~3.EXE:2009/08/26(水) 15:35:12 ID:XFFvDMy/
>>81
「comm」というUnixコマンド
$ comm -12 111.txt 222.txt
KB0002

…と思って探したらDOS版は意外に見あたらないな。
まぁ、Cコンパイラを持ってれば移植は簡単だが。
85名無し~3.EXE:2009/08/26(水) 20:46:36 ID:5PJ1j7rD
for /f %i in (111.txt 222.txt) do if exist %i (echo %i) else type nul>%i
86名無し~3.EXE:2009/08/27(木) 17:58:35 ID:KS6gWKyN
findstr /g:222.txt 111.txt
87名無し~3.EXE:2009/08/27(木) 22:17:50 ID:nZe2TznM
> dir /b sss 2>&1 > NUL
ファイルが見つかりません

標準エラー出力を消すのってこれじゃ駄目なの?
うまく消えてくれない…
88名無し~3.EXE:2009/08/27(木) 22:33:19 ID:KwULvt6t
dir /b sss 2>NUL
でいいんじゃね
89名無し~3.EXE:2009/08/28(金) 02:38:36 ID:vJQmW7ME
>>87
順番逆にすればおk
dir /b sss >NUL 2>&1
90名無し~3.EXE:2009/08/28(金) 13:06:56 ID:QQt+uO29
意味ねーだろ
91名無し~3.EXE:2009/08/28(金) 15:10:06 ID:xNLjfm+n
>>90
何この馬鹿w
92名無し~3.EXE:2009/08/28(金) 15:20:28 ID:QQt+uO29
dir /b sss >NUL 2>&1
にどういう意味があるのか言ってみろよ
言えないだろ
93名無し~3.EXE:2009/08/28(金) 17:38:19 ID:snvKbO6j
馬鹿が居ますが気にしないでください
94名無し~3.EXE:2009/08/28(金) 19:10:59 ID:kstOdKCT
意味があるのは一目瞭然だけど、理由がわからんな…

だれかメカニズムを教えてくれ…
95名無し~3.EXE:2009/08/28(金) 19:13:02 ID:QQt+uO29
見苦しいな
正しいのは>>88で、>>89はゴミでした。
と素直に認めればよいのに
96名無し~3.EXE:2009/08/28(金) 19:16:39 ID:QQt+uO29
>は左から評価
97名無し~3.EXE:2009/08/28(金) 19:27:18 ID:QQt+uO29
ところで
標準エラー出力を消すのは>>88でよいけれど、
ファイルが見つかりません
てーのは標準出力なので、これを消すには
dir /b sss >NUL
ってなるけど、これじゃ意味ねー
if exist sss dir /b sss
みたいにやり方かえたほうがいいんじゃね?
98名無し~3.EXE:2009/08/28(金) 19:35:55 ID:QQt+uO29
すまん
>>97は勘違いだ。標準エラーだった
99名無し~3.EXE:2009/08/28(金) 19:52:29 ID:kstOdKCT
>>96
もっと根本的?なところで>>87がダメな理由がわかんね。

標準出力と標準エラー出力の両方消したいときに同じような事やってしまいそうだが。
素直に 2>nul 1>nul でも俺的にはokなんだけど。
100名無し~3.EXE:2009/08/28(金) 19:55:55 ID:Cn4Wds8n
1997-0519 DOS窓乗っ取り計画(Win95でunix)
http://www.ksky.ne.jp/~sakae/daily/1997-0519.html
101名無し~3.EXE:2009/08/28(金) 20:25:58 ID:QQt+uO29
dir /b sss 2>&1 > NUL
初期状態1と2はコンソール
2>&1 1を2にコピー 結果、1と2はコンソール
>NUL NULをオープンして1に設定 結果、1はNUL、2はコンソール

dir /b sss >NUL 2>&1
初期状態1と2はコンソール
>NUL NULをオープンして1に設定 結果、1はNUL、2はコンソール
2>&1 1を2にコピー 結果、1と2はNUL
102名無し~3.EXE:2009/08/28(金) 20:50:01 ID:kstOdKCT
>>101
>>87がダメな理由はわかったような気がするが、今度はなぜ
> dir /b sss >NUL 2>&1
に意味がないのかわからなくなったぞ。
103名無し~3.EXE:2009/08/28(金) 21:44:03 ID:QQt+uO29
標準エラー出力を消すのに標準出力まで消してどうする?
dir /bする意味があるのか?
104名無し~3.EXE:2009/08/28(金) 23:01:24 ID:kstOdKCT
俺は 2>&1 なんて書いてあるところから最初からそのつもり(出力全部消す)だと思ったが。
実際に使うコマンドは違っててリダイレクトの例としてdirを使ってるだけだと。

エラーだけ消したいなら最初から>>88にするのが普通だと思うし。
105名無し~3.EXE:2009/08/29(土) 01:59:19 ID:sLXCWAjJ
バッチ内でエラーレベル参照するだけなんで標準出力も標準
エラー出力もNULにリダイレクトする、ってのはよくやるな
106名無しさん@そうだ選挙に行こう:2009/08/30(日) 14:51:06 ID:x6Ys1KxG
出力全部消すつもりならわざわざ/bつけないだろ
107名無し~3.EXE:2009/09/02(水) 01:14:48 ID:yaL1/tKB
http://sourceforge.net/projects/unxutils/files/unxutils/current/UnxUtils.zip/download
これ入れたの忘れてたな
commが通るわけだ
108名無し~3.EXE:2009/09/02(水) 07:44:24 ID:AhwPM1Q7
UnxUtilsもそろそろバージョンうpしてくれないかな
109名無し~3.EXE:2009/09/04(金) 17:23:17 ID:cDaJOLt/
Index of /~piaip/tools/unxutils
http://www.csie.ntu.edu.tw/~piaip/tools/unxutils/
Index of /usr/local/wbin
http://ww-iii.clearancegs.net/usr/local/wbin/
[chrome] Index of /branches/official/build_149.23/src/third_party/gnu/files
http://src.chromium.org/viewvc/chrome/branches/official/build_149.23/src/third_party/gnu/files/?pathrev=3803

comm.exe 一応同じ結果は吐く様だ
110名無し~3.EXE:2009/09/04(金) 17:28:47 ID:cDaJOLt/
>>81
>>84
Index of /crash/software/hpux/dos/unix_utils/uxutl23
http://www.macalester.edu/crash/software/hpux/dos/unix_utils/uxutl23/

DOS版(?)
111名無し~3.EXE:2009/09/04(金) 21:43:34 ID:HWA0i7q+
Index of /downloads/robocopy/
http://www.lordgoogle.com/downloads/robocopy/
Index of /download/Robocopy
http://valentin-jensen.org/download/Robocopy/
112名無し~3.EXE:2009/09/08(火) 02:39:36 ID:MMsFgnf1
新規書き込みレスの抽出に活躍中
113名無し~3.EXE:2009/09/08(火) 19:38:42 ID:KSBFwEbc
.bat の右クリ-編集のエディタを変更するのってどうやるんですか?
114名無し~3.EXE:2009/09/08(火) 19:54:27 ID:0hbOVmxI
>>113
regedit
115名無し~3.EXE:2009/09/12(土) 20:25:36 ID:5/iIMDkS
move *aaa* ..\aaa\
のようなコードでディレクトリも移動してくれるやり方教えてください。
moveだとファイルだけ移動になってしまいます。
116名無し~3.EXE:2009/09/13(日) 00:50:36 ID:GSibjpcz
for /D %M in (*aaa*) do move %M ..\aaa\
117名無し~3.EXE:2009/09/16(水) 09:41:51 ID:hoEOBMLO
current directory nameを取得したいけどこの場合forかなぁ

c:\foo\bar\hoge\hage
上で実行すると
hage
を返す
118名無し~3.EXE:2009/09/16(水) 11:39:46 ID:Md0yTjnn
%cd%じゃいかんの?
119名無し~3.EXE:2009/09/16(水) 12:51:50 ID:O8adoxSh
forかcallだけど、forです。
120名無し~3.EXE:2009/09/17(木) 09:04:22 ID:Fa/jQWSl
カレントディレクトリ名を取得する4つの方法 - SourceForge.JP Magazine
http://sourceforge.jp/magazine/07/11/19/0147208/2
カレントディレクトリ名を取得する4つの方法 - SourceForge.JP Magazine
http://sourceforge.jp/magazine/07/11/19/0147208
Helix Melody:カレントディレクトリのディレクトリ名を取得 - livedoor Blog(ブログ)
http://blog.livedoor.jp/hijacker777/archives/1114545.html
121名無し~3.EXE:2009/09/17(木) 09:47:58 ID:IglDsg0r
FOR /f "DELIMS=" %A IN ('basename %cd%') DO SET cdname=%A
122名無し~3.EXE:2009/09/17(木) 09:56:52 ID:IglDsg0r
Windows上で動作するUNIX系コマンドラインツールの比較 - Computer
http://rally.jp/comp/archives/2009/08/windowsunix.php
インストール: NT版UNIX-like tools 0.14 - Computer
http://rally.jp/comp/archives/2009/08/_ntunixlike_tools_014.php
123名無し~3.EXE:2009/09/17(木) 13:56:26 ID:nFNv/FXO
FOR /f "DELIMS=\" %A IN ("%cd%") DO SET cdname=%A
124名無し~3.EXE:2009/09/17(木) 14:00:38 ID:nFNv/FXO
FOR %A IN ("%cd:\=" "%") DO SET cdname=%A
125名無し~3.EXE:2009/09/17(木) 14:26:06 ID:XYbO697w
for %d in ("%CD%") do set cdnamne=%~nd
126名無し~3.EXE:2009/09/17(木) 16:57:31 ID:SfXagdty
T:\JKY\PC等>FOR /f %A IN ('cd') DO echo %A
T:\JKY\PC等>echo T:\JKY\PC等

T:\JKY\PC等>FOR /f %A IN ('echo %cd%') DO echo %A
T:\JKY\PC等>echo T:\JKY\P

下の書き方だと先頭一文字しか取得できないんだよな
127名無し~3.EXE:2009/09/17(木) 18:55:42 ID:+VEhY7Lp
%cd:\=&set cdname=%
128名無し~3.EXE:2009/09/19(土) 02:11:40 ID:JMO0vA73
ふりがながいなぁ
129名無し~3.EXE:2009/09/24(木) 17:26:20 ID:v23KGSU/
130名無し~3.EXE:2009/09/25(金) 16:13:40 ID:MVXvOquX
findコマンドとリダイレクトを使って、テキスト中に特定の文字列が見つかった時だけ
ログファイルを出力するといったことをしようと思ったのですが、findによる出力は
該当する検索結果が無くとも改行とファイルへのパスの二行が強制的に表示されるので、単純に
FIND "検索文字列" ファイルパス>>hoge.log
ではうまくいきませんでした。XP標準のコマンドだけで実現する方法ありますか?
131名無し~3.EXE:2009/09/25(金) 16:46:42 ID:WpmJGqgl
>>130
findstr
132名無し~3.EXE:2009/09/25(金) 18:14:13 ID:MVXvOquX
>>131
ありがとうございます!
133名無し~3.EXE:2009/09/25(金) 19:05:46 ID:rKkYwStT
FIND "検索文字列" <ファイルパス>>hoge.log
134名無し~3.EXE:2009/09/28(月) 21:51:40 ID:npGXueZv
GETCLIPBOARD 環境変数名 または /F[:]ファイル名 または /B[:]ファイル名

クリップボードに有効なデータがない場合環境変数は空になります(削除されます)。

環境変数の代わりに/Fまたは/Bオプションを指定してファイルにクリップボードの
内容を受け取ることもできます。

/F を指定時はテキストファイル、/B を指定時はビットマップファイルの指定になります。
クリップボードの内容を受け取れなかった場合、ファイルは元の状態のままになります。
/F を指定時にファイル名の先頭を '+' にすると指定のファイルに追加します。
135名無し~3.EXE:2009/09/29(火) 01:18:09 ID:U8qAWnad
comdel command
標準入力またはテキストファイルの既出行の出力を抑止しながら標準出力するコマンドラインツール
comdel command フリーソフト(無料ソフト)&シェアウェア - goo ダウンロード
http://download.goo.ne.jp/software/contents/soft/winnt/util/se347533.html
136名無し~3.EXE:2009/09/29(火) 19:34:02 ID:eJMIO/Ht
Vector:t_fclip (Windows95/98/Me / ユーティリティ) - ソフトの詳細
http://rd.vector.co.jp/soft/win95/util/se122707.html
最強クリップボード拡張ソフトはこれだ!@OURS-2ch過去ログ倉庫
http://2ch.ac.la/read.php/win/1006803665/l100
137名無し~3.EXE:2009/09/29(火) 20:59:26 ID:eJMIO/Ht
コマンドプロンプト
138名無し~3.EXE:2009/09/30(水) 04:21:04 ID:VE3quA4g
139名無し~3.EXE:2009/10/04(日) 14:42:46 ID:11/jS/g3
何をやっているのかね
140名無し~3.EXE:2009/10/05(月) 03:46:16 ID:XbaU7t3J
保守
141名無し~3.EXE:2009/10/05(月) 05:08:26 ID:K8SsroZU
保守をやっているのかね
142名無し~3.EXE:2009/10/05(月) 09:48:02 ID:GyCNc+hD
暇つぶしだお
143名無し~3.EXE:2009/10/05(月) 15:24:55 ID:wWgyyEfr
コマンド別/for - CMD.EXE TIPs
http://it-is-it.net/CMD/%A5%B3%A5%DE%A5%F3%A5%C9%CA%CC/for/#yb6719d7
機能別/日時を得る - CMD.EXE TIPs
http://it-is-it.net/CMD/%B5%A1%C7%BD%CA%CC/%C6%FC%BB%FE%A4%F2%C6%C0%A4%EB/
[NT系]文字列の切り出しにFOR /F "delims="を使ってみたがうまくいかない (DOSプロンプト活用相談室LOG)
http://www.fpcu.jp/dosvcmd/bbs/log/cat3/set_path/3-0350.html
144名無し~3.EXE:2009/10/05(月) 18:04:50 ID:hOdwv/2r
この手のリンクはすぐいなくなるので、無断転載しろ。
145名無し~3.EXE:2009/10/05(月) 19:24:49 ID:u43Omwc0
>>143
> [NT系]文字列の切り出しにFOR /F "delims="を使ってみたがうまくいかない (DOSプロンプト活用相談室LOG)

waybackにあったんで見たが、
"delims=abcde" でabcdeの文字列で切れると勘違いしたパターン。話になんね。
146名無し~3.EXE:2009/10/06(火) 18:11:02 ID:JNQhXxcC
Win95時代でもBUなしではきつかった
147名無し~3.EXE:2009/10/07(水) 02:17:31 ID:/ml1tCff
妹のパンティ
http://love6.2ch.net/test/read.cgi/out/1253460974/106

106 名前:底名無し沼さん[sage] 投稿日:2009/10/07(水) 00:22:13
NewsVoter: Windows WIN32 fsutil.exe
http://www.newsvoter.com/Binary/dll/fsutil-exe-imports-exports-dependents.html
http://www.tbsradio.jp/kirakira/photo/CIMG2412.JPG
ニュースステーションのころからこんなもんです
http://homepage1.nifty.com/yukarino/mari/koudou/mari2.html
参照
http://www29.atwiki.jp/lovepluswiki/pages/41.html
Index of /~piaip/tools/unxutils
http://www.csie.ntu.edu.tw/~piaip/tools/unxutils/
Index of /archives/pc/forest/d/dotfighters
http://ring.nict.go.jp/archives/pc/forest/d/dotfighters/
http://www.uty.co.jp/anaroom/maya.htm
花王「エコナ」特保取り消しも 消費者庁政務官
http://www.47news.jp/CN/200910/CN2009100601000797.html
Index of /SymServe/fsutil.exe/3B7D836E10000
http://www.alexander.com/SymServe/fsutil.exe/3B7D836E10000/
【特集】コマンドで操るWindows XP - CUIのアドバンテージを堪能しよう (8) コマンドラインツールでWindows XPをメンテナンス(3) 「fsutil」を使いこなす | パソコン | マイコミジャーナル
http://journal.mycom.co.jp/special/2002/xpcommand/007.html
148名無し~3.EXE:2009/10/10(土) 01:20:45 ID:dCE7LTzz
32 ビット版 Debugging Tools for Windows のインストール
http://www.microsoft.com/japan/whdc/devtools/debugging/installx86.mspx
Windows Script Programming: Windows 2000 Support Toolsのtlist.exeとkill.exeのダウンロード元
http://scripting.cocolog-nifty.com/blog/2007/12/windows_2000_su_4d62.html
Vector:ダウンロード Windows > ユーティリティ > タスク制御
http://www.vector.co.jp/vpack/filearea/win/util/task/by_date.html
149名無し~3.EXE:2009/10/12(月) 02:21:05 ID:yYYO39+F
T:\>TLIST -?
Microsoft (R) Windows NT (TM) Version 5.1 TLIST
Copyright (c) Microsoft Corporation. All rights reserved.

usage: TLIST <<-m <pattern>> | <-t> | <pid> | <pattern> | <-p <processname>>> | <-k> |
<-s>
[options]:
-t
Print Task Tree

<pid>
List module information for this task.

<pattern>
The pattern can be a complete task
name or a regular expression pattern
to use as a match. Tlist matches the
supplied pattern against the task names
and the window titles.

-c
Show command lines for each process

-e
Show session IDs for each process

-g
Show group affinity for each process (Win7+)
150名無し~3.EXE:2009/10/13(火) 22:32:33 ID:cfc1h0wS
D:\homo>TLIST|DKERRLVL FINDSTR ワードパッド
2128 wordpad.exe ドキュメント - ワードパッド
errorlevel=0

D:\homo>TLIST|DKERRLVL FINDSTR ワードパッド
errorlevel=1

D:\homo>cgrep p:// *.htm*|sed -f c:\bin\uty\urle.sed|sort|uniq|tee _|tclip
151名無し~3.EXE:2009/10/16(金) 20:28:30 ID:J+lhIHta
バッチで時刻関係の操作
http://homepage1.nifty.com/jak/batch/time.html#3
timeitコマンドでアプリケーションの実行時間を測定する − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/422timecmd/timecmd.html
バッチ・ファイル中で日付をファイル名に使用する − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html
MASATOの開発日記: WindowsのBATファイルで日付と時刻を扱う方法
http://www.sutosoft.com/room/archives/000368.html
MS-DOSコマンドプロンプトTips - Programming/Tips - 総武ソフトウェア推進所
http://smdn.invisiblefulmoon.net/programming/tips/msdos_cmd_tips/
コマンドプロンプトで実行したexeの戻り値の取得 - 質問・相談ならMSN相談箱
http://questionbox.jp.msn.com/qa1569659.html
Oracle Technology Network (OTN) Japan - 掲示板 : コマンドプロンプトでSQLローダー実行 ...
http://otn.oracle.co.jp/forum/thread.jspa?threadID=35000597&tstart=45
現在時刻を取得してファイル名にする - 教えて!goo
http://oshiete1.goo.ne.jp/qa613130.html
南アラバ公国: コマンドプロンプト
http://margrave.seesaa.net/category/5158432-1.html
152名無し~3.EXE:2009/10/18(日) 01:03:58 ID:DCwe79Nk
Azuki の使い方 http://azuki.sourceforge.jp/usage.html
C# for ObjectARX2005 http://yayoi3gatsu.sakura.ne.jp/rd.cgi?f=arx_cs01
Console倶楽部 - Windowsでもコンソールを使おう http://console.fc2web.com/
DOSコマンドでファイルのショートカットを作る方法 -OKWave http://okwave.jp/qa1958725.html
LBE 開発日誌 http://www.lambdapage.org/lbe/diary02.html
MSBuildを活用して開発時の作業を自動化する(2/3):CodeZine http://codezine.jp/article/detail/674?p=2
N.Yamazaki's blog | AquesTalk http://blog-yama.a-quest.com/?cid=18986&page=1
NTseverを活用しよう http://www.johoka.net/ntserver.htm
PICプログラマに求められる機能とは:52回の週末 http://quickturn.livedoor.biz/archives/50872956.html
TextPad: C#を始める http://japan.textpad.com/support/faq/csharp.html
Trend Micro ダメージクリーンアップ サービスとの CSC SSM の使用 http://www.cisco.com/japanese/warp/public/3/jp/service/manual_j/sec/asa/ssmag2/appendixC/13472_03_appendixc.pdf
UNIXのLNのようにショートカットを作成するコマンドは? (DOS ... http://www.fpcu.jp/dosvcmd/bbs/log/unixdoswindows/1-0513.html
153名無し~3.EXE:2009/10/19(月) 01:24:53 ID:djEqEQDG
Vistaの同期センター活用法 - PukiWiki http://www.orient-cucumis.net/wiki/index.php?Vista%A4%CE%C6%B1%B4%FC%A5%BB%A5%F3%A5%BF%A1%BC%B3%E8%CD%D1%CB%A1
Web ChangeLog: MSH: Using MshSnapIn http://oka326.blogspot.com/2006/01/msh-using-mshsnapin.html
Windows - BlueSkyNet http://blueskynet.if.land.to/wiki.cgi?page=Windows
Windows Form GUIアプリケーションを記述するための最新の ... http://ascii.asciimw.jp/pb/msdn/article/a12_0014.html
Windows Media Player コンポーネント覚え書き(1) http://www11.ocn.ne.jp/~ikalu/fc2page/fc2wmp001.html
Windows Script Programming: コマンドラインでショートカットを作成する。 http://scripting.cocolog-nifty.com/blog/2007/02/post_3fde.html
YouTube http://www.youtube.com/results?hl=ja&lr=lang_ja&num=30&q=CSC%E3%81%AF%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89&um=1&ie=UTF-8&sa=N&tab=w1&gl=JP
「.NET Framework SDK」を含むブログ - はてなキーワード http://k.hatena.ne.jp/keywordblog/.NET%20Framework%20SDK
@IT:.NET実践プログラミング .NETでカスタム・プラグインを開発 ... http://www.atmarkit.co.jp/fdotnet/practprog/01deskbar/deskbar_03.html
きたかぜさんち http://crow.whitesnow.jp/tips/tips_02.html
まどこまんど http://toll.hp.infoseek.co.jp/sof/wcom.htm
エクセルVBAでテキストファイル(バッチファイルの作成) - 教えて!goo http://oshiete1.goo.ne.jp/qa2388033.html
エクセルVBAでテキストファイル(バッチファイルの作成) - 質問・相談 ... http://questionbox.jp.msn.com/qa2388033.html
コマンド プロンプトを開く - uguuの日記 http://d.hatena.ne.jp/uguu/20061031/1162271962
コマンド ラインの指定 http://msdn.microsoft.com/ja-jp/library/78f4aasd(VS.80).aspx
チュートリアル : 起動可能な Windows PE RAM ディスクを UFD に作成する http://technet.microsoft.com/ja-jp/library/cc766092(WS.10).aspx
プログラムの作成・実行(C# によるプログラミング入門) http://ufcpp.jp/study/csharp/st_compile.html
154名無し~3.EXE:2009/10/20(火) 10:19:18 ID:4ZVv/YYH
PsTools.zip
tp://www.z4x.com/tools/PsTools.zip
155名無し~3.EXE:2009/10/20(火) 22:58:07 ID:wbDO97X2
本家sysinternalsから落とせるじゃん
156名無し~3.EXE:2009/11/14(土) 22:58:43 ID:uA6JTFnR
bashのエイリアスみたいな機能はありますか?
157名無し~3.EXE:2009/11/14(土) 23:06:34 ID:uA6JTFnR
事故解決しました。すみません。
158名無し~3.EXE:2009/11/18(水) 02:27:53 ID:97JQYixr
コマンドプロンプトを実行した時、最初にどのパスにいくのか設定する事って出来ますか?
159名無し~3.EXE:2009/11/18(水) 02:35:37 ID:frEMkiOA
>>158
cmdへのショートカットを作る
右クリック プロパティで作業フォルダのところに
好きなパスを書け
160名無し~3.EXE:2009/11/18(水) 22:13:17 ID:tZlNWGJP
このスレもすっかりさびれたな
161名無し~3.EXE:2009/11/18(水) 23:01:56 ID:frEMkiOA
>>160
Windows PowerShellが出来てwindows7のコマンドラインがほとんど変わってない所を見ると
もう放棄されたといっても過言じゃない状況だからだと思う
こっちは単発の質疑応答のみでいいんじゃないの。
162名無し~3.EXE:2009/11/19(木) 15:21:14 ID:7DXVCfhu
xpにはあったヘルプファイルがvistaでなくなったのは責任放棄だろ
163名無し~3.EXE:2009/11/21(土) 00:42:40 ID:ODpYiLXj
なくなったけど、MSが配ってる奴使えばまだ使えるでそ
164名無し~3.EXE:2009/11/21(土) 14:27:53 ID:wxl80pPx
もう目新しい話なんてないからな
ぐぐればそこらに転がってるからわざわざ聞くまでもないし
165名無し~3.EXE:2009/11/22(日) 15:06:58 ID:+yxwUHDq
SET OLDPATH=%PATH%
PATH=@;%PATH%
SET LIBRARY_PATH=A


↑これにはどんな意味があるのでしょうか?
バッチコマンドなど調べたのですが結局分からず
166名無し~3.EXE:2009/11/22(日) 16:22:52 ID:W+j5c9sh
どんな意味って環境変数PATHの意味がわからんってこと?
167名無し~3.EXE:2009/11/22(日) 16:54:22 ID:ra6Q8ywR
>>165
1行目 「OLDPATH」と名づけた変数に現在の環境変数の値を入力する
2行目 現在の環境変数に@という値(新たなパス)と既存の環境変数の値を入力する
     →要するに既存の環境変数に@という新たなパスを追加してる
3行目 「LIBRARY_PATH」と名づけた変数にAという値を入力する

この3行の中では@、Aの値が出てきていないし
「OLDPATH」 「LIBRARY_PATH」といった変数も値をセットするだけで何も使っていない
何がやりたいのかは前後関係を知らないとわからんよ
168名無し~3.EXE:2009/11/22(日) 16:55:47 ID:ySE6LLmg
賢い人達キタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─ !!

コンピューターの言語だろうか位しか分からんwww
169名無し~3.EXE:2009/11/22(日) 16:56:29 ID:ySE6LLmg
あ、誤爆ったwww忘れてwww
170名無し~3.EXE:2009/11/22(日) 20:17:25 ID:s+B81oCe
2行目がSETコマンドじゃなくてPATHコマンドなのがこのお題のミソだな。
=はファイル名としても使えるのにここではコマンドセパレーターとして働いている
その混沌っぷりがさらに話題を広げるのであった。
171名無し~3.EXE:2009/11/22(日) 20:28:10 ID:+yxwUHDq
>>167,170
ありがとうございました
とあるバッチファイルの中身です
これを実行する事で、そのウインドウでのみ@にあるものを使えるようになるのですが
環境変数を書き変えて、その手間を省けないのかなと思い、質問しました
172名無し~3.EXE:2009/11/22(日) 22:04:49 ID:mndxsipb
飢えたライオンに餌まく質問者
173名無し~3.EXE:2009/11/22(日) 22:05:43 ID:mndxsipb
それに飛びつくライオン

ライオンさん一言どうぞ
174名無し~3.EXE:2009/11/22(日) 22:53:45 ID:se2vb0Wd
あぁん
175名無し~3.EXE:2009/11/23(月) 19:23:48 ID:s/idSSMb
コードページが437の状態でコマンドを実行させたいのですが
cmd /c chcp 437&dir  <可能な限り1行で起動したい
とかやってもdirが実行されるコードページが変更されていません
コマンドプロンプトからの場合はコードページ変更が行われるようですが
「ファイル名を指定して実行」から実行した場合(CreateProcessによる起動?)に
コードページの変更が行われないようです
コマンドプロンプトからの実行でなくてもコードページを変更して実行する方法が
あったら教えてください
よろしくお願いします
176名無し~3.EXE:2009/11/24(火) 15:32:18 ID:F4p8x8VG
cmd /c cmd /c chcp 437&dir  
177名無し~3.EXE:2009/11/24(火) 22:20:33 ID:F4p8x8VG
cmd /c chcp 437&cmd /c dir
178名無し~3.EXE:2009/11/24(火) 23:10:13 ID:USGr7+m9
現実世界から二次元世界へと戻るコマンドを教えてください
179名無し~3.EXE:2009/11/25(水) 01:18:05 ID:YdDbxgd2
残念! コマンドラインは一次元の世界だ
180名無し~3.EXE:2009/11/28(土) 20:49:03 ID:fHqQVsd/
ヘルプファイル見るより検索した方が早い気が
ここで知ったか振るという手もあるけどw

コマンドラインごみ箱ツール「GB」1.0.1


181名無し~3.EXE:2009/12/02(水) 09:52:53 ID:RwfNPXz0
DOSっていうかバッチファイルすごいね。
レジストリ設定ファイルを作るバッチで小技が効いてる。
ブラウザで開く代わりにインターネットショートカットを作成するというものなんだけど。
出来立てほやほや置いときますね

-- MakeDefaultBrowserSetReg.bat --
rem host\MakeInternetShortcut.batをデフォルトのブラウザに設定するレジストリファイルを作成します。

rem パス名の\を\\に置換
set VMWInterAppPath=%~dp0host\MakeInternetShortcut.bat
set VMWInterAppPath=%VMWInterAppPath:\=\\%

rem レジストリファイル
echo Windows Registry Editor Version 5.00 > SetDefaultB.reg
echo. >> SetDefaultB.reg
echo [HKEY_CLASSES_ROOT\ftp\shell\open\command] >> SetDefaultB.reg
echo @="\"%VMWInterAppPath%\" \"%%1\"" >> SetDefaultB.reg
echo. >> SetDefaultB.reg
echo [HKEY_CLASSES_ROOT\HTTP\shell\open\command] >> SetDefaultB.reg
echo @="\"%VMWInterAppPath%\" \"%%1\"" >> SetDefaultB.reg
echo. >> SetDefaultB.reg
echo [HKEY_CLASSES_ROOT\https\shell\open\command] >> SetDefaultB.reg
echo @="\"%VMWInterAppPath%\" \"%%1\"" >> SetDefaultB.reg

set VMWInterAppPath=

-- host\MakeInternetShortcut.bat --
rem ショートカットの作成
echo [DEFAULT] > ..\OpenURL.lnk
echo BASEURL=%1 >> ..\OpenURL.lnk
echo [InternetShortcut] >> ..\OpenURL.lnk
echo URL=%1 >> ..\OpenURL.lnk
182名無し~3.EXE:2009/12/02(水) 12:29:50 ID:6qx8dZPq
拡張子はurlだろが。死ねよ。
183名無し~3.EXE:2009/12/02(水) 12:46:35 ID:RwfNPXz0
そうそう。
URLでした。
あと、カレントディレクトリをファイルのあるディレクトリを基準に考えてましたが間違っていました。
ファイルパスにはすべて%~dp0をつけて「%~dp0..\Open.url」とかにしないと駄目でした。

普通の実行ファイルだとたいてい実行ファイルのある場所がカレントディレクトリになってるからそのつもりで作っちゃった。
テストで実行するときはエクスプローラーで実行したけど、そんときはその場所がカレントになるから気がつかなかった。
184名無し~3.EXE:2009/12/03(木) 23:27:07 ID:PE65EMUZ
>reg query "HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Tools" /v InstallPath | for /f %P in ('find "InstallPath"') do set VMW-IPTEMP=%P

Toolsがインストールされたパスをレジストリから取得し、環境変数に入れたかったんだけど、無理なのかな。
FINDの結果を一旦ファイルに出力して set /p path=<ファイル名 で実現はできたんだけど、
最初に書いたコマンドの結果は set VMW-IPTEMP=InstallPath となり、スペースで区切られたところまでしか取得できない。

確か標準入力は開業もスペース区切りも同一に扱われた気がするけど・・そのせいかな?
185名無し~3.EXE:2009/12/03(木) 23:35:43 ID:8MhzhBSk
"delims="
186名無し~3.EXE:2009/12/04(金) 00:26:11 ID:/KEnbVNi
>>185
ありがとう。1行取れました。
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Tools" /v InstallPath | for /f "delims=" %%P in ('find "InstallPath"') do echo %%P

でも、echo %%P はうまくいくけど、 set VMW_IPTEMP="%%P" でやっても、環境変数には代入されませんでした。
コマンドラインでもバッチファイルでも同じでした。
一応コマンドは実行されるんだけど。

他にこんなのも試したんですが、だめでした。
find "InstallPath" | set /p VMW_IPTEMP=
find "InstallPath" | set /p VMW_IPTEMP=<con
187名無し~3.EXE:2009/12/04(金) 01:49:26 ID:d9wXhpuD
代入はされてる。ただし、子プロセスの環境変数は親に逆遺伝しない。

for /f %%P in ('echo AAA') do set XXX=%%P
echo %XXX%

echo BBB | for /f %%P in ('echo AAA') do set XXX=%%P
echo %XXX%

echo BBB|for /f %%P in ('echo AAA') do set XXX=%%P & call echo %%XXX%%
188名無し~3.EXE:2009/12/04(金) 13:39:21 ID:d9wXhpuD
echo BBB | set XXX=AAA
echo %XXX%

echo BBB | (set XXX=AAA
call echo %%XXX%%
)
189名無し~3.EXE:2009/12/04(金) 15:14:22 ID:/KEnbVNi
なるほど。
パイプ使った先で環境変数に入れるなら、そこで処理してしまわないと駄目なんですね。
結局ファイルを経由して set /p オプションでリダイレクトするのが正しかったか。
190名無し~3.EXE:2009/12/04(金) 15:50:40 ID:d9wXhpuD
for /f %P in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Tools" /v InstallPath ^| find "InstallPath"') do set VMW-IPTEMP=%P
echo %VMW-IPTEMP%
191名無し~3.EXE:2009/12/04(金) 18:20:02 ID:/KEnbVNi
>>190
パイプ処理まで中に含めるとは思いつきませんでした。
ありがとうございました。
192名無し~3.EXE:2009/12/04(金) 18:37:12 ID:d9wXhpuD
echo BBB | (set /p XXX=
call echo %%XXX%%
)
193名無し~3.EXE:2009/12/07(月) 14:04:39 ID:Cyo0Qdc6
cp, mvコマンドとcopy, moveコマンドの微妙な違い:実例とまとめ - 檜山正幸のキマイラ飼育記
http://d.hatena.ne.jp/m-hiyama/20081211/1228976433
194名無し~3.EXE:2009/12/22(火) 22:39:16 ID:Wwn6YkO/
>>5
これのダウンロード方法が分かりません
195名無し~3.EXE:2010/01/03(日) 09:23:06 ID:yQMN8uyY
おはようございます、ちょっとコマンドについて質問させてください
IEで、インターネット一時ファイル"のみ"を削除するには、
どのようなコマンドを打ったらよいのでしょうか?
rd /s "tempor~1" だと、クッキーやフォームなども一緒に削除されてしまいます
196名無し~3.EXE:2010/01/03(日) 13:55:05 ID:xnZ8ujnt
無いから作れ。
197名無し~3.EXE:2010/01/03(日) 14:53:13 ID:NDYQ1zyW
>>195
cleanmgr
198名無し~3.EXE:2010/01/03(日) 15:49:26 ID:yQMN8uyY
>>197
おお、できましたサンクスです

ただ、cのクリーンアップのチェックは全て外し、
cleanmgr /d z: /sageset:1
でセットしておいても、

cleanmgr /d z: /sagerun:1
をbatにして実行すると、目的のzドライブだけではなく、cドライブも毎回空きを計算してしまいます。。
いい方法ありますか?
199名無し~3.EXE:2010/01/08(金) 15:13:18 ID:wdm81tzo
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
200名無し~3.EXE:2010/01/11(月) 12:56:50 ID:g2GiCuw7
Index of /~piaip/tools/unxutils
http://www.csie.ntu.edu.tw/~piaip/tools/unxutils/
201名無し~3.EXE:2010/01/11(月) 15:41:27 ID:V3sq9Wpe
>>200
残念ながら、中身は古いのばかりだな
202名無し~3.EXE:2010/01/26(火) 12:40:48 ID:Aw94STdP
FOR /f "skip=4 tokens=3" %%A IN ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') DO SET desktop=%%A

203名無し~3.EXE:2010/01/26(火) 13:56:10 ID:QnBbXJza
空白があると駄目だろ?
204名無し~3.EXE:2010/01/26(火) 14:25:18 ID:ZPqGt4/y
tokens=1,2,*
do set desktop=%%C
って所かな。
205名無し~3.EXE:2010/01/26(火) 18:53:17 ID:9uq8tqJG
syslogをbat処理する時に困っています。

↓で始まる行を直前の行と繋げたいのですが、どうしたら良いでしょうか?
,0,LAN -

sed-1.18+mb1.03で色々試しているのですが、うまくいきません。
キーワードがあった行と次の行をつなげることは出来たのですが・・・。

よろしくお願いします。
206名無し~3.EXE:2010/01/26(火) 20:05:57 ID:UyCrvOTu
空白・2バイト文字があるとアウトだね
207名無し~3.EXE:2010/01/26(火) 21:59:36 ID:QnBbXJza
>>205
各行を改行なしで書く。
なんとかで始まらないときだけ行頭に改行を書く。
最後に改行を書く。
208名無し~3.EXE:2010/01/27(水) 12:29:11 ID:aPOmdlOD
質問お願いします。

http://www.lifehacker.jp/2009/09/090904firefoxfiremaster.html?
↑このソフトを使いたいのですがステップ3まで行き
http://securityxploded.com/firemaster.php?
↑の配布ページを参考に、サンプルコマンドをコピーして
 
  FireMaster.exe -d -f c:\dictfile.txt Firefox_Profile_Path
などを打ち込んだりするのですが、エラーが出て先に進めません。

C:\User\****\Links\FireMaster_bin>FireMaster.exe -d -f c:\dictfile.txt Firefox_Profile_Path
↑このコマンドの打ち方に間違いはないでしょうか?
209名無し~3.EXE:2010/01/27(水) 14:40:18 ID:nXBbHpe6
210名無し~3.EXE:2010/01/27(水) 17:09:55 ID:nXBbHpe6
C:\bin>type t.sed
/.*$/N
s/\n//

C:\bin>type log.txt
A
,0,LAN -
B
,0,LAN -
C
,0,LAN -

C:\bin>sed -f t.sed log.txt
A,0,LAN -
B,0,LAN -
C,0,LAN -

適当に書いてみた
211名無し~3.EXE:2010/01/27(水) 19:05:35 ID:YbV7ZS5I
forでできる
212名無し~3.EXE:2010/01/27(水) 21:17:47 ID:RwVGimom
213名無し~3.EXE:2010/02/04(木) 03:04:07 ID:bMU9o4Cj
set sec=%now:~6,2%
if %sec% lss 14 set m=14&&goto st
if %sec% lss 29 set m=29&&goto st
if %sec% lss 44 set m=44&&goto st
if %sec% lss 59 set m=59&&goto st
:st
214名無し~3.EXE:2010/02/04(木) 20:16:27 ID:1NhVEJJl
now ?
215名無し~3.EXE:2010/02/05(金) 10:42:44 ID:mIxXapaZ
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved

regコマンドは2000じゃ使えないんか...
216名無し~3.EXE:2010/02/05(金) 12:58:42 ID:FDIFTu0B
持ってけよ
217名無し~3.EXE:2010/02/06(土) 11:42:38 ID:uEMTgQVR
Reg.exeコマンドはNT4の頃からあるよ。
NT4の頃はResource Kit Toolsで提供されてた。(忘れたけどSupplement 3か4か以降)
Windows 2000ではSupport Toolsに入ってた。
↓でダウンロードできるよ。
http://www.microsoft.com/downloads/details.aspx?FamilyID=f08d28f3-b835-4847-b810-bb6539362473&DisplayLang=en

ちなみに引数の文法が結構違ってるから要確認な。
218名無し~3.EXE:2010/02/06(土) 16:51:32 ID:N6DMGysY
>>204 >>206
個別に調整するしかないのか? 汎用的に指定できないのかね
219名無し~3.EXE:2010/03/19(金) 19:45:23 ID:j/kRmZ+3
スレ立てるまでもない質問はここで 105匹目より誘導されてきました。

WindowsXPで、タスクの登録を管理者権限を持っている人間が行うとして、タスクをユーザーアカウントを見て実行させるか、どうかを判定したいと考えています。
・atコマンドで登録 →コマンドプロンプト上で実行
at 15:00 cmd /c if "Guest" equ ^"%USERNAME^%" ( echo hoge )
で実行するも、登録はされるのですが、
1、ダブルコーテーションがはずされてしまうという問題があります。
2、これを今度はバッチファイル上で実行しようとすると、ダブルコーテーションがはずされた上に、^"%USERNAME^%"の部分が^だけになってしまいます。
なにか、解決に向けてヒントなりをいただけないでしょうか、、、
220名無し~3.EXE:2010/03/19(金) 20:28:55 ID:BHu+ZFPB
at 15:00 "cmd /v:on /c if \"Guest\" equ \"!USERNAME!\" ( echo hoge )"
221名無し~3.EXE:2010/03/20(土) 02:07:13 ID:2svRwq1H
>>220 レスありがとうございます。エスケープシーケンス\と、!について教えていただき、前進することができました。
レスもらってから、うまくできなかったため、今も試行錯誤しています。
(cmd.exeをダブルコーテーションで囲むか、最初と最後のダブルコーテションをはずすとうまくいきました)
「ファイル名を指定して実行」
cmd.exe /v:on /c if \"Guest\" equ \"!USERNAME!\" ( echo hoge ) はうまく動作しました(ありがとうございます)。
しかし at 15:00 cmd.exe /v:on /c if \"Guest\" equ \"!USERNAME!\" ( echo hoge ) はうまく動作しません。
原因を探ったところ、 at 15:00 cmd.exe /v:on /c echo \"!USERNAME!\" ^> C:\test.txt で確認すると、実行結果は
"!USERNAME!\" がそのまま書き込まれていました。
上記をうまく解決するため、atに登録した時点で環境変数(?)を開くうまい方法などあれば、ご教授いただければと思います。
222名無し~3.EXE:2010/03/20(土) 22:21:55 ID:lyhs8zMC
at 15:00 cmd.exe /c echo \"%USERNAME%\" ^> C:\test.txt 
223名無し~3.EXE:2010/03/21(日) 03:07:07 ID:F1k/W7Mk
>>222 レスありがとうございます(なんどもありがとうございます)。
at 15:00 cmd.exe /c echo \"%USERNAME%\" ^> C:\test.txt 
自分の環境だと上記コマンドは at 数字 で確認すると、すでに登録した段階でユーザー名が展開されてしまいます。
(コントロールパネル→タスク at数字のプロパティで確認すると、タスクを登録した段階で環境変数が展開されております、、、)
at 15:00 cmd.exe /c echo \"%%USERNAME%%\" ^> C:\test.txt 
などもいろいろためしてみたのですが、、、上記の場合は、C:\test.txtの中身が "%USERNAME%"になってしまいました、、、。(/v:on のあるなしに関わらず、、、)

なにか、良い方法があると、、、いいのですが、、、。
224名無し~3.EXE:2010/03/21(日) 04:24:52 ID:IG7xyVml
at 15:00 cmd.exe /c set ^> C:\test.txt
225名無し~3.EXE:2010/03/21(日) 04:29:42 ID:83CPJkNx
>>223
事前にbatを作っておいてそれを実行するんじゃダメなんですか?

[test.cmdの中身]
if "%USERNAME%" equ "Guest" echo "%USERNAME%" > C:\test.txt
で、at 15:00 c:\test.cmd
を実行とか。

ところで目的は何ですか?
15:00ぴったりに使用していないと、その実行は明日に持ち越しになっちゃいますが
それでも良いんですか?15:00以降に最初に使ったユーザーとかじゃなくて?
また一回こっきり実行でいいんですか?毎日とかじゃなくて?
もしユーザーの管理に使いたいなら、ログオンスクリプトとして登録しておいて
ユーザーのログオン時を捕まえるのが良いと思うんですが?
@echo off
if "%username%"=="xxx" (
挨拶メッセージを表示
コマンド1
コマンド2
) else if "%username%"=="yyy" (
コマンド3
) else if "%username%"=="zzz" (
コマンド4
)
226名無し~3.EXE:2010/03/21(日) 15:20:12 ID:IG7xyVml
at 15:00 cmd.exe /c whoami ^> C:\test.txt
227名無し~3.EXE:2010/03/22(月) 04:11:36 ID:49Z3p/7o
atのタスクがユーザアカウントでなく、システムアカウントで実行されることを分ってない?
228名無し~3.EXE:2010/03/22(月) 12:14:38 ID:vRxWzlrp
皆様コメントありがとうございます。
>>224 レスありがとうございます。
setの中身を確認して、ようやく自分がアホなことをやっていることがわかりました。
(素で実行したのと、atで実行したのを比較して、%USERNAME%を確認しました)

>>225 レスありがとうございます。
>>225 の言うとおり)目的はある時間にAさんなら実行するけど、Bさんは実行しないスクリプトを組みたいと考えています。
at 15:00っていうのは特に意味はなく、質問するにしても可能な限りスクリプトを短くしたかったためです。
自分の環境では、教えていただいたbat処理は、ユーザーが "" になりましたので、違う手を考えてみます。

>>226 レスありがとうございます。
WindowsXP SP2 Support Tool入れてみて実験してみたいと思います。

>>227 レスありがとうございます。
システムアカウントが実行するということはなんとなく知っていたのですが、 >>224 のsetでようやく理解できました。
whoamiでログインユーザーがとれるかちょっと実験してみたいと思いますが、、、atコマンドで実行すれば、システムアカウントになるのを確認しようと思います。
229名無し~3.EXE:2010/03/22(月) 21:28:49 ID:49Z3p/7o
at 15:00 cmd /c wmic computersystem get username ^>C:\test.txt
230名無し~3.EXE:2010/03/23(火) 00:57:02 ID:aU5aUsH5
特定ユーザーでのみタスク実行したいのならatコマンドでなく実行アカウントを指定できるschtasksコマンドを使えば?
元々atコマンドはNTの互換のために残されている過去の遺物なので。
231名無し~3.EXE:2010/03/23(火) 02:59:35 ID:eS66TQH1
だめだろきっとパスワードがいるから
232名無し~3.EXE:2010/03/23(火) 20:19:25 ID:lQF/ybn7
皆様コメントありがとうございます。

>>229 レスありがとうございます。
atでログインユーザー名を確認できました。
ありがとうございます。

>>230 レスありがとうございます。
>>231 が言うように、パスワードが必要なため楽な方法を探しておりました、、、。
(結果的にみなさまの貴重なお時間を割いていただいておりますが、、、)

>>231 レスありがとうございます。
おっしゃるとおりです、、、orz

wmicからのパイプ処理?について現在勉強しております。
少し時間がかかるかもしれませんが、うまく行きましたら報告いたします。
233名無し~3.EXE:2010/03/23(火) 23:57:08 ID:lDYBG9RV
タスクは無差別にバッチを実行するだけにして、バッチの中でIF文使って
%USERNAME%が条件に合った場合だけやりたい処理をする、
みたいな構成じゃダメなの?
234名無し~3.EXE:2010/03/24(水) 00:45:12 ID:U3N/7+3H
ごくろうさん
235名無し~3.EXE:2010/03/25(木) 03:27:06 ID:09J8YNxF
なんかイタズラの臭いがするなあ
教えたのは失敗なんじゃないかな
236名無し~3.EXE:2010/03/25(木) 17:54:32 ID:16a0LSCJ
できましたので、報告します。

for /F "usebackq skip=1" %%x in (`wmic computersystem get username`) do if /i "%%x" equ "%COMPUTERNAME%\%1" ( echo "hoge" )

>>223 レスありがとうございます
先に試しましたが、自分の環境ですとatで実行すると %USERNAME" にはなにも入っておりませんでした。

>>234 レスありがとうございます
すべてのレスをくれたかた、ご苦労さまでした。

>>235 レスありがとうございます
イタズラにも使えるでしょうし、有用なことにも使えるかと思います。

237名無し~3.EXE:2010/03/26(金) 01:21:45 ID:/JmVMDcj
OSのバージョンを区別するスマートな方法ってないよな
MS手抜くなよ
238名無し~3.EXE:2010/03/26(金) 19:07:54 ID:7vut8Xv7
ver /?
239名無し~3.EXE:2010/03/26(金) 20:41:17 ID:n80jNEuM
SET UsrOS1=(不明)
VER|FIND "Windows">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系?:不明)
VER|FIND "Windows 95">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:95)
VER|FIND "Windows 95. [Version 4.00.1111]">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:95_OSR2)
VER|FIND "Windows 98">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:98)
VER|FIND "Windows 98 [Version 4.10.2222]">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:98_SE)
VER|FIND "Windows Millennium">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:Me)
VER|FIND "Windows NT">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:NT)
VER|FIND "Windows NT Version 4.0">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:NT_4.0)
VER|FIND "Windows 2000">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:2000)
VER|FIND "Windows XP">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:XP)
VER|FIND "Windows [Version 5.2.">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:Server2003)
VER|FIND "Windows [Version 6.0.">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:Vista)
VER|FIND "MS-DOS">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(非Win系:MS-DOS)
VER|FIND "MS-DOS バージョン 5.00">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(非Win系:MS-DOS_5.0(EPSON製98互換機用で確認))
VER|FIND "MS-DOS Version 6.2">NUL
IF NOT ERRORLEVEL 1 SET UsrOS1=(非Win系:MS-DOS_6.2(EPSON製98互換機用で確認))
240名無し~3.EXE:2010/03/27(土) 11:06:38 ID:D6Ht2NWP
>>239
煽りじゃなくてマジで疑問なんだが x64 と x86 の見分けは?
ついで言えば IA64 は?
241名無し~3.EXE:2010/03/27(土) 13:00:23 ID:EVIDvLoZ
jt.exeに関して質問です。

win7のタスク(windows/system32/tasks)を制御しようとしてますが、

jt /lj %systemroot%\system32\tasks\(タスク名) /sj SystemRequired = 1
[TRACE] Loading Job C:\Windows\system32\(タスク名)
[PERF ] Load took 0 ms
[FAIL ] IPersistFile::Load hr=0x80041313

となり、うまく制御できません。

根本的にやり方まちがってますかね?

242名無し~3.EXE:2010/03/27(土) 15:00:49 ID:4iD/8n0I
根本的にやり方まちがってるんじゃない?
タスクスケジューラはVistaで変わったからjtは使えないんじゃないか
なんでos標準のschtasksを使わないの?
243名無し~3.EXE:2010/03/27(土) 16:10:46 ID:EVIDvLoZ
>>242
ありがとうございます。
いや、それがschtasksだと、そこまで(スリープからの復帰)制御出来ないんですよ。
244名無し~3.EXE:2010/03/27(土) 16:27:12 ID:4iD/8n0I
createobject("schedule.service")はどうだろ?
245名無し~3.EXE:2010/03/27(土) 16:37:47 ID:4iD/8n0I
TaskSettings.WakeToRun Propertyがあるね
246名無し~3.EXE:2010/03/27(土) 18:03:50 ID:EVIDvLoZ
スターターの私には難しそうですがいろいろやってみます。
247名無し~3.EXE:2010/03/27(土) 20:43:44 ID:lwojKVA6
>>240
PROCESSOR_ARCHITECTURE見ればいいんでない?
248名無し~3.EXE:2010/03/27(土) 23:44:04 ID:KVlY6lKz
>>247
なるほど!
さんくす!!
249名無し~3.EXE:2010/04/11(日) 14:11:54 ID:y90kcftT
コマンドライン中で純粋に特別な意味を持つキャラクタとしては、
< > |
の3つだけでしょうか。
つまり、
ECHO ほにゃらら〜〜〜ふにゃらら
というように数十文字のテキストを表示するとして、
〜〜〜の中に入れてはいけない文字が知りたいのです。
250名無し~3.EXE:2010/04/11(日) 14:31:00 ID:6Yi1arZm
^
251名無し~3.EXE:2010/04/11(日) 15:58:54 ID:y90kcftT
>>250
ヒントをいただいてかなり分かりました。
まとめると以下のようで正しいでしょうか?


■コマンドラインで通常の文字と扱われない特殊キャラクタ、およびエスケープ方法

◆MS-DOSプロンプト(全4種)

<
>
|
※以上の3種は " (ダブルクオート)で括られた状態なら通常の文字として扱われる

% → %%


◆コマンドプロンプト(全9種)

< → ^<
> → ^>
| → ^|
& → ^&
( → ^(
) → ^)
^ → ^^
※以上の7種は " (ダブルクオート)で括られた状態なら通常の文字として扱われる

% → %%
" → ""
252名無し~3.EXE:2010/04/11(日) 16:00:36 ID:mGw8jiZC
C:\>echo %%
%%
253名無し~3.EXE:2010/04/11(日) 16:42:14 ID:O2CSi6Ub
C:\> echo (
(
254名無し~3.EXE:2010/04/11(日) 16:48:23 ID:y90kcftT
なんて早さの即答…迷い無しですね。ありがとうございます。
なるほど、コマンドプロンプトでは%%でエスケープ、というのは
ウソ情報をつかんできてしまったようです。
ただし、DOSではこれで正しい。
すると…
%windir%と表示したい場合は、

COMMAND.COM
echo %%windir%%

CMD.EXE
echo ^%windir^%

ということですね。
あと、
" → ""
というのもエスケープされてるのかされてないのか分からないですね。
常識的にはエスケープされてるとは言えないと思いますので、除外します
この考え、正しいのかな??

他に何か見落としがありますでしょうか?
255名無し~3.EXE:2010/04/11(日) 16:58:21 ID:y90kcftT
>>253
そもそも () の使い方が分からない…。
ECHOで単体なら大丈夫と言うことですね。
しかし、使用できない文字、エスケープすべき文字の確認が目的ですので、
これは前述の通り普通に ^( ^) で良いかと。
エスケープしなくても大丈夫なパターンを探してるわけじゃないんです。
256名無し~3.EXE:2010/04/11(日) 16:58:30 ID:O2CSi6Ub
set windir^^=aaa
echo ^%windir^%
257名無し~3.EXE:2010/04/11(日) 17:01:21 ID:O2CSi6Ub
echo ^" ^"
echo " ^"
258名無し~3.EXE:2010/04/11(日) 17:06:11 ID:O2CSi6Ub
cmd/?|find "特殊文字"
259名無し~3.EXE:2010/04/11(日) 17:10:26 ID:y90kcftT
>>256
>>258
う、難しい。勉強してみます。
>>257
ありがとうございます。
今ちょうど、
echo " | "
echo ^" | "
なんてやって確認してたとこでした。

結論は、
" → ^"
ですね!
260名無し~3.EXE:2010/04/11(日) 18:11:16 ID:y90kcftT
>>256
これは分かりません??
結果は%windir^%にaaaが入ってますよ、と。
先頭の ^ はどこへ消えたのか?
%のエスケープが^%でないとしたら、どういうルールなのでしょうか。
これは自分では答えを出せそうに無いです。

>>258
ややこしいですねぇ。
cmd/?|find "^"
とか、
set test=ファイル
cmd/?|find "%test%"
とかやってました。

シェルとコマンドの仕事の範囲が明確で無いから分かりにくいんですかね。
もしくはリテラルの定義が明確で無いからか。

自分が必要としているのはechoだけなんですが、
>>256の結果は影響がありそうです。
ぜひ解説していただけないでしょうか。
261名無し~3.EXE:2010/04/11(日) 19:40:55 ID:O2CSi6Ub
set windir^^=aaa
echo %windir^%
262名無し~3.EXE:2010/04/11(日) 19:42:41 ID:O2CSi6Ub
c:\> cmd/?|find "特殊文字"
263名無し~3.EXE:2010/04/11(日) 19:43:49 ID:O2CSi6Ub
set windir^^=aaa
set windir
264名無し~3.EXE:2010/04/11(日) 20:00:38 ID:O2CSi6Ub
265名無し~3.EXE:2010/04/11(日) 20:05:46 ID:O2CSi6Ub
266名無し~3.EXE:2010/04/14(水) 19:28:19 ID:Lfksvlek
XP及び7でコマンドライン or WSHから関連づけの登録を行うのにどのような方法がありますか?
標準でインストールされているソフトウェアの影響を受けにくい方法を探しています

よろしくお願いします
267名無し~3.EXE:2010/04/14(水) 19:55:11 ID:zsXaS8Mw
レジストリ書き換えしかないだろ
268名無し~3.EXE:2010/04/14(水) 23:42:57 ID:Nbmdm37R
assoc
ftype
269名無し~3.EXE:2010/04/16(金) 22:23:00 ID:+WenbQ+F
英字大文字を小文字に変換するコマンドがないよね
270名無し~3.EXE:2010/04/16(金) 22:27:45 ID:ATLdufCB
setがあるだろが なんとかとsetは使いよう
271名無し~3.EXE:2010/04/16(金) 23:22:09 ID:IINeE4gJ
どういうことでござるか?
272名無し~3.EXE:2010/04/17(土) 00:17:11 ID:iUltzkHe
set x=%x:A=a%
273名無し~3.EXE:2010/04/20(火) 06:21:04 ID:lAJ6JeLK
コマンドプロンプト初心者です><

"xxx".拡張子 というファイルをD&Dして、以下のようなテキストファイルを吐き出すバッチ作りたいのですが

↓テキストファイルの中身↓

video = MPEG2Source("xxx".d2v)
audio = WavSource("xxx".wav)
AudioDub(video, audio)


"xxx"の部分にD&Dしたファイルの名前だけを代入して吐き出させるようにするにはどうしたらよいでしょうか><
274名無し~3.EXE:2010/04/20(火) 07:46:44 ID:l+u3QXef
こりゃー釣りだな
275名無し~3.EXE:2010/04/20(火) 14:04:59 ID:xb1+R6Ig
釣りか真性かというと後者の方じゃないかと思うんだが
276名無し~3.EXE:2010/04/21(水) 00:15:09 ID:tjgMJh/A
ちょっと調べりゃわかるけど、
1) バッチパラメータとして、%0〜%9ってのがある
2) パラメータには修飾子が使える。 %~1, %~n1など
3) 表示コマンド echoで出力先を標準出力からファイルにリダイレクト > or >> できる
277名無し~3.EXE:2010/04/21(水) 03:23:28 ID:vhJZPvun
>276さん
なんとか作成することができました。
にありがとうございました〜
278名無し~3.EXE:2010/04/21(水) 04:09:15 ID:tjgMJh/A
>>269
@if(0)==(0) echo off
if "%~1"=="" echo パラメタ1に入力ファイル名(変換元)を指定してください& goto :eof
if not exist "%~1" echo 指定ファイル"%~f1"が存在しません& goto :eof
cscript //nologo //e:jscript "%~f0" <"%~1" >output.txt
goto :eof
@end
WScript.Echo(WScript.StdIn.ReadAll().toLowerCase());
279名無し~3.EXE:2010/04/22(木) 17:06:43 ID:KT+yi7rA
スゲー昔のことで悪いけど
>>127
これの動作を誰か解説してくださいな
280名無し~3.EXE:2010/04/22(木) 18:14:18 ID:pj2f+ePb
281名無し~3.EXE:2010/04/22(木) 18:43:13 ID:HvRXw+eF
>>279
文字の置換
%cd% 中の「\」を「&set cdname=」で置換するとどうなるか

c:\aaa\bbb\ccc → c:&set cdname=aaa&set cdname=bbb&set cdname=ccc
即ち
c:
set cdname=aaa
set cdname=bbb
set cdname=ccc

個人的にはdos窓を沢山開いてる時の識別用に
%CD:\=&title % をよく使う
282名無し~3.EXE:2010/04/22(木) 18:56:57 ID:KT+yi7rA
ありがとさん
俺が混乱してた理由
&で一旦切れると思ってた。
そのまま置換されてさらに再度評価されるんだね。
283名無し~3.EXE:2010/04/22(木) 22:52:39 ID:pj2f+ePb
再度評価じゃなくて評価の順序でしょ
284名無し~3.EXE:2010/04/24(土) 22:30:32 ID:oAoL4N0L
cmd.exe だと title でウィンドウのタイトルを設定できるけど
powershell.exe ではどうすればいい?
285名無し~3.EXE:2010/04/24(土) 22:39:33 ID:OvOv+w/S
$Host.UI.RawUI.WindowTitle = "title"
とかそんな感じ
286名無し~3.EXE:2010/04/24(土) 22:46:57 ID:oAoL4N0L
あんがと
とりあえず
function title {$Host.UI.RawUI.WindowTitle = $args[0]}
としといた
287名無し~3.EXE:2010/05/11(火) 22:24:59 ID:vyuPZUfc
powershell.exe だと $Host.UI.RawUI.WindowTitle でウィンドウのタイトルを取得できるけど
cmd.exe ではどうすればいい?
288名無し~3.EXE:2010/05/11(火) 23:52:00 ID:d+T9MEpE
ウィンドウの概念が無いんじゃ…
289名無し~3.EXE:2010/05/12(水) 14:17:51 ID:R0Dj2vpX
できました
290名無し~3.EXE:2010/05/21(金) 22:11:25 ID:AhJIB9Qh
制限ユーザでログオンしてて、無線LANと有線LANの有効/無効を手軽に切り替えたいです。
管理者のパスワードは手入力で。

devcon.exeを入れて↓のショートカットを作って実行してもうまくいきません。
%windir%\system32\runas.exe /user:USERNAME "c:\bin\devcon enable 'PCI\VEN_HOGEHOGE'"
runasのパスワード入力してもそのまま終了(エラーが出てるだろうけどすぐ消えちゃって確認できない)。

devcon enable "PCI\VEN_HOGEHOGE"とすべきところをダブルクォートの入れ子がダメだったのでシングルクォートを使ってみたのが原因だと思う。
どうすればいいの?

MakeMeAdmin.cmd(制限ユーザで一時的に管理者権限のコマンドプロンプトが起動できます)でdevcon enable "PCI\VEN_HOGEHOGE"としたら期待通りに変更できました。
なので"PCI\VEN_HOGEHOGE"のハードウエアIDが間違ってるとかではないと思う。

あと、ショートカットを実行後に(表示だけでも)一時停止みたいに出来ない?
バッチファイルのpauseみたいなの。
キーを押さないとウィンドウが閉じないようにしたい。

XP PRO SP3です。
291名無し~3.EXE:2010/05/21(金) 23:33:43 ID:WdVH3pFc
runas/?
292名無し~3.EXE:2010/05/21(金) 23:36:05 ID:WdVH3pFc
あと、cmd/k
293名無し~3.EXE:2010/05/22(土) 01:34:05 ID:iN+rPVH/
ありがとん。

runas /? の例のところに
> runas /env /user:[email protected] "notepad \"my file.txt\""
て書いてあったのでダブルクォートの入れ子は使えるってことなのかな?

でも↓のをショートカットにしてみたけどやっぱエラーになる。
cmd.exe /k "%windir%\system32\runas.exe /user:USERNAME "C:\bin\devcon.exe enable "PCI\VEN_HOGEHOGE"""

USERNAME のパスワードを入力してください:
C:\bin\devcon.exe enable PCI\VEN_14E4 をユーザー "DOMAIN\USER" として開始しています...
'DEV_HOGE' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'HOGE2' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'HOGE3""' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
294名無し~3.EXE:2010/05/22(土) 04:25:45 ID:XfHQXv+A
\"
295名無し~3.EXE:2010/05/22(土) 16:43:25 ID:iN+rPVH/
ありがと。節穴だった。
\でエスケープするのか。
もう一段深くするのは\\"じゃないの?↓うまくいかないよ。
cmd.exe /k "%windir%\system32\runas.exe /user:USERNAME \"C:\bin\devcon.exe enable \\"PCI\VEN_HOGEHOGE\\"\""
296名無し~3.EXE:2010/05/22(土) 18:59:02 ID:XSrApt/u
何も試してないしヘルプすら見てないんだが、
\がエスケープ文字だというんなら、
PCI\VEN_HOGEHOGEの中の\とかもエスケープがいりそうな気がする。
297名無し~3.EXE:2010/05/22(土) 19:28:05 ID:iN+rPVH/
あ、そうか。
じゃパスのデリミタの\もエスケープしなきゃダメだな。
もう訳わからんくなってきた。(´・ω・`)
298名無し~3.EXE:2010/05/22(土) 22:28:42 ID:XfHQXv+A
CommandLineToArgvW has a special interpretation of backslash characters when they are followed by a quotation mark character ("), as follows:

•2n backslashes followed by a quotation mark produce n backslashes followed by a quotation mark.
•(2n) + 1 backslashes followed by a quotation mark again produce n backslashes followed by a quotation mark.
•n backslashes not followed by a quotation mark simply produce n backslashes.
299名無し~3.EXE:2010/05/22(土) 23:44:12 ID:iN+rPVH/
d。また少し賢くなった。

cmd.exe /k "%windir%\system32\runas.exe /user:USERNAME \"C:\bin\devcon.exe enable \\\"PCI\VEN_HOGEHOGE\\\"\""
でも失敗。
が、エラー(?)の種類が変わった。

RUNAS 使用法:

RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
/user:<ユーザー名> プログラム
...略...

"PCI\VEN_HOGEHOGE"のところに&が入ってた。"PCI\VEN_HOGE&hage"みたいに。
これ関係あるのかな?
ダブルクォート中の&は特殊文字として扱われなくてそのままだと思い込んでた。
後出しでホントに申し訳ない。
300名無し~3.EXE:2010/05/22(土) 23:51:12 ID:RrzNIgQ+
^
301名無し~3.EXE:2010/05/22(土) 23:53:45 ID:iN+rPVH/
cmd.exe /k 外すとうまく行く。
%windir%\system32\runas.exe /user:USERNAME \"C:\bin\devcon.exe enable \"PCI\VEN_HOGE&hage\""

取りあえず一番目の目的は達成できた。
けど、もうちょっとがんばってみる。
runas.exeが引数の解釈が独自だったりするのかな??

日記に付き合ってくれてありがと。
302名無し~3.EXE:2010/05/23(日) 14:17:02 ID:W2D4uAW/
runas.exeがMS標準シンタクス
cmd.exeが独自解釈
303名無し~3.EXE:2010/05/24(月) 20:17:20 ID:W/5tifrW
直前に飛んだラベル名とかサブルーチン名を取得する方法って無いですかね?
call :sub
:sub
echo %~0
goto :eof

みたいにやって :sub とか出れば嬉しいんですけど…
304名無し~3.EXE:2010/05/24(月) 20:37:22 ID:U25k7xKb
%0で出るだろ?
305名無し~3.EXE:2010/05/24(月) 21:02:19 ID:U25k7xKb
と思ったら出ないね 昔、出たような気がするが
306名無し~3.EXE:2010/05/24(月) 21:33:28 ID:U25k7xKb
こうすれば出てるのが確認できる
call :sub
:sub
echo %~0
pause
goto :eof
307名無し~3.EXE:2010/05/25(火) 00:53:32 ID:cYyyrQH+
>>306
あれ?

何度やっても出なかった…と思っていたら
echo %~n0
とやってて本体バッチ名取得してました
%~0 ならサブルーチン入るんですねorz


しょうもない質問ですみません
308名無し~3.EXE:2010/05/28(金) 17:02:23 ID:nj08k/yL
誘導されてきました
以下に該当svchost.exeの再起動を組み込みたいです
どう記述すればよいかご教示ください
http://www.dotup.org/uploda/www.dotup.org920134.txt
309名無し~3.EXE:2010/05/28(金) 21:38:05 ID:u9g/OIqa
shutdown /r
310名無し~3.EXE:2010/06/12(土) 00:47:37 ID:Dlxn8xTR
ちょいと質問ですが、startコマンドの正体って何ですか?
batch?exe?探したけど見つからない
311名無し~3.EXE:2010/06/12(土) 01:41:46 ID:Dip7ylrc
シェルつーかCMD.EXEの内部コマンド。
dirとかechoとかと一緒。
312名無し~3.EXE:2010/06/12(土) 10:01:00 ID:3fATMNp4
9x/Me では start.exe だったぞ
313名無し~3.EXE:2010/06/13(日) 01:37:52 ID:Czl7gJkW
生き字引だね
314名無し~3.EXE:2010/06/13(日) 04:23:54 ID:XhOpRdWv
老害って言うなぁ ><
315名無し~3.EXE:2010/06/13(日) 05:26:28 ID:Rhlj2NIa
労咳乙
316名無し~3.EXE:2010/06/16(水) 06:58:54 ID:Oy6d8rq0
M/B温度、CPU温度、HDD温度を
コマンドラインで取得したいです。
ご存知な方、ご教授ください。
317名無し~3.EXE:2010/06/16(水) 22:38:27 ID:39eX3Vg4
net send /domain:hogehoge "誰かCPU温度見てきてくんない?"
318名無し~3.EXE:2010/06/17(木) 13:17:59 ID:2Xq5jmQP
>>317 役立たず
このコマンドの構文は次のとおりです:

NET
[ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | PAUSE | PRINT | SESSION | SHARE | START |
STATISTICS | STOP | TIME | USE | USER | VIEW ]
319名無し~3.EXE:2010/06/17(木) 13:45:18 ID:rA4YN+jF
>>318
vista以降はnet send無くなったみたいだな…
320名無し~3.EXE:2010/06/17(木) 13:46:41 ID:rA4YN+jF
321名無し~3.EXE:2010/06/18(金) 00:16:20 ID:Lkx8YBO5
>>318
そうか?
有能なパシリを確保すれば無限の可能性を秘めている最強コマンドじゃないかw
Vista以降は >>319 の言うように msg にしないとイカンようではあるけど
322名無し~3.EXE:2010/06/18(金) 00:29:04 ID:eKBxx8ep
>>321
いきなりケース開けられて温度計当てられるのが最強だと思えるってステキだな
323名無し~3.EXE:2010/06/18(金) 00:35:34 ID:IBhIxhLK
いや、さすがにパシリにそんなことさせないだろw

「俺がいない間に H/Wモニターと温度計付けとけ、PC壊したらゆるさん。
 そして定時計測と俺が尋ねた任意の時の情報を即座に知らせろ。
 ついでに茶ぁもってこい」

パシリなんだからこんな感じだろ
324名無し~3.EXE:2010/06/18(金) 01:02:58 ID:FRoXhJso
プログラマの進化を思い出した
325名無し~3.EXE:2010/06/18(金) 09:45:16 ID:BZUKhFUO
>>321 ホント役立たず
'msg' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
326316:2010/06/18(金) 14:56:24 ID:Czg/EYoB
やはり無理なのでしょうか?
wmicコマンドで可能でしょうか?
wmicコマンドに熟知しているかた、
よろしくお願い致します。
327名無し~3.EXE:2010/06/18(金) 22:28:50 ID:eKBxx8ep
snmpって温度とか取れるんじゃないっけ?
328名無し~3.EXE:2010/06/18(金) 23:10:23 ID:WMDQ5xj1
っけ?という語尾をつけたら2chぽいと評価された時代は
5年前に終わりました。まだ気づきませんか?
329名無し~3.EXE:2010/06/18(金) 23:14:33 ID:eKBxx8ep
そんな時代があったんだ。
2chにすごく詳しいんですね。2ch歴何年ですか?
330名無し~3.EXE:2010/06/18(金) 23:23:42 ID:E9Xtjaoh
しあわせってなんだっけなんだっけ
331名無し~3.EXE:2010/06/19(土) 00:18:58 ID:f++uISdW
キッコーマンの醤油は不味くはないが美味いと言う程でもない
332名無し~3.EXE:2010/06/19(土) 01:20:25 ID:uwOhPTQr
ソースは2ch。
333316:2010/06/19(土) 08:03:52 ID:Oyfqtbw0
>>327
MotherBoard Monitorを使用してsnmpで取れます。
しかし、MotherBoard Monitorはログインしていなければ取れないのです。
334名無し~3.EXE:2010/06/19(土) 09:38:53 ID:t2I57B/C
for と dir を組み合わせて空き容量を取得するところまではできたけれど,
それをMB/GB表示するとこでつまずいた。
XPなら
335名無し~3.EXE:2010/06/19(土) 10:00:35 ID:J6JYfJEW
du.exe 拾ってこい
336名無し~3.EXE:2010/06/19(土) 12:28:10 ID:t2I57B/C
for /F "tokens=3" %%s in ('fsutil volume diskfree C:\実況') do echo %%s
まともに動かなかったのはこのディレクトリ名のせいでした。
ごめんなさい。
337名無し~3.EXE:2010/06/19(土) 13:43:02 ID:uwOhPTQr
forのカッコ内の全角文字の解釈、いつになったら直るんだろうなぁ。
DOS時代のforから生まれ変わって機能拡張したNT4.0SP3の頃からずーっと不調のまま。
昔より多少は改善してるけど、未だに手放しで信用できるレベルじゃないから、わざわさ
一時ファイルにいったん吐いてからfor /fで読ませるような段取りしてやってる。
338名無し~3.EXE:2010/06/19(土) 13:58:54 ID:Lx2nza/O
HDDもTB超のこの時代にint32bitまでしか扱えないってのはなかなか辛い。
外部コマンド無しでHDDの空きをMiB・GiBに計算する方法は無いもんだか。

俺じゃ%freespace:~0,-6%みたいな次善策しか浮かばん…
339名無し~3.EXE:2010/06/19(土) 14:36:25 ID:DAoYqnz1
一桁ずつ計算すればいいんじゃねえの?
340名無し~3.EXE:2010/06/19(土) 15:22:20 ID:YGapzfgn
>>338
上位桁と下位桁に分けて計算すりゃええじゃないか 小学生の算数だろ
>>337
ご苦労なこって 使い方が下手なだけだろ
341名無し~3.EXE:2010/06/19(土) 20:03:50 ID:YGapzfgn
>一桁ずつ計算すればいいんじゃねえの?
わかったようなこと言ってわかってねーんじゃねえの?
342名無し~3.EXE:2010/06/19(土) 20:43:34 ID:xbB9YwGi
ねえの?という語尾をつけたらVIPぽいと思われた時代は
5年前に終わりました。まだ気づきませんか?
343名無し~3.EXE:2010/06/20(日) 17:49:41 ID:kQIbsBAe
>>339
1桁ずつどうやるんだろう
344名無し~3.EXE:2010/06/20(日) 18:22:06 ID:kQIbsBAe
せめて4桁ずつでないと難しいんじゃないか
345名無し~3.EXE:2010/06/20(日) 22:22:56 ID:kOOEfEcy
質問
forの中でgoto使ったらだめとかそういうのは無いですよね?
gotoのあとで終わっちゃうんです
346345:2010/06/20(日) 22:23:45 ID:kOOEfEcy
もちろんforの()内にラベルはあります
347名無し~3.EXE:2010/06/20(日) 22:53:37 ID:BRn0hbsF
他の言語でもgotoは帰ってこないような?
ご希望はcallの拡張機能ではなくて?
348名無し~3.EXE:2010/06/21(月) 00:43:21 ID:8Cfs2MxU
(
goto :aaa
echo aaa
goto :bbb
)
:bbb
echo bbb
ってやってみな
349名無し~3.EXE:2010/06/21(月) 00:44:40 ID:8Cfs2MxU
ごめ
(
goto :aaa
goto :bbb
:aaa
echo aaa
)
:bbb
echo bbb
ってやってみな
350名無し~3.EXE:2010/06/21(月) 01:34:24 ID:+M8NFq+o
C:\Documents and Settings\azusa>set z=j,k,l
C:\Documents and Settings\azusa>set z=%z:,=%
C:\Documents and Settings\azusa>echo %z%
jkl
351345:2010/06/21(月) 02:20:35 ID:yphIa24T
>>347
callでラベルに飛べるんですね〜
ところで、現在末尾に@pause > nulと書いて表示を見てるんですが、
多分このせい?でキーを押さないと繰り返しを続けてくれないんですよね
@pause > nulのほかにウィンドウを閉じない方法は無いですか?

>>349
よくわからない;
352名無し~3.EXE:2010/06/21(月) 06:30:42 ID:Bf7wY82x
そりゃバッチをダブルクリックで実行してるからだろ。
コマンドプロンプト開いてCUIで実行したら処理終了してもそのまま。
353名無し~3.EXE:2010/06/21(月) 10:49:23 ID:nkKTN5RL
>>351
「末尾」がcallされたブロックの一部になっちゃっててるからだろ。

@echo off
for %%v in (a b c d e f g) do (call :ex %%v)
call :ex2
@pause > nul
goto :hell

:ex
echo %1
goto :hell

:ex2
echo オワタ
REM goto :hell ; これはなくても結果は同じ

:hell
354名無し~3.EXE:2010/06/21(月) 15:12:26 ID:Bf7wY82x
ファイル末尾にpause入れるなら サブルーチン抜けたいところでgoto :eof
eofはラベル不要。
自分の作ったラベルに飛んだら末尾のpauseに引っかかる。
355名無し~3.EXE:2010/06/21(月) 21:23:31 ID:+M8NFq+o
for /F "tokens=3" %%s in ('dir %tmp%') do set size=%%s
set size=%size:,=%
set /a size=%size%/1024/1024
echo %size% MiB
356345:2010/06/21(月) 22:30:59 ID:yphIa24T
>>353
ああーできました
callはどこでもドア〜でforの外と繋がってるんですね
:exは:ex2の3行を除く末尾までがブロックてことですか
助かりましたありがとう!
357名無し~3.EXE:2010/06/21(月) 22:56:33 ID:Bf7wY82x
>>355
%size%が2G超えてなければ文字列としても数値としても動くけど…

set size=2147483647
set /a size=%size%/1024/1024
echo %size% MiB

2047 MiB

set size=2147483648
set /a size=%size%/1024/1024
echo %size% MiB

-2048 MiB
358名無し~3.EXE:2010/06/22(火) 01:07:06 ID:eOY9ss6I
一桁ずつ計算すればいいんじゃねえの?
359名無し~3.EXE:2010/06/22(火) 04:28:52 ID:wV9BOjvz
>>333
ああ、そうなんだ。
じゃあ、プチサービスを作って、そのアプリをサービス化しちゃえばログインしていない状態でも取れるかもよ、
と書いてここがム板じゃないことに気付いた。

なんかそういうフリーソフトがあったような気がしなくもないよ>サービス化
360名無し~3.EXE:2010/06/24(木) 20:03:30 ID:jotKt44m
>>358
できるものならやってみろよ
361名無し~3.EXE:2010/06/25(金) 10:48:42 ID:LxrszcVG
MiB
MLB
362名無し~3.EXE:2010/06/25(金) 19:30:46 ID:UanEBa4x
>>360
できるだろ やってみろよ 簡単だよ
363名無し~3.EXE:2010/06/25(金) 20:22:18 ID:1v/RbT1q
出来たっぽい

@echo off
set A=214748742140
set B=1024
set ans=
set r=
:div
set r=%r%%A:~0,1%
set A=%A:~1%
set /a s=r/%B%
set /a r=r%%%B%
set ans=%ans%%s%
if %r%%A% GEQ %B% goto :div
echo %ans%%A%
echo %r%
364名無し~3.EXE:2010/06/25(金) 20:25:30 ID:blfI5Op2
wmicのツワモノ、いらっしゃいますか?
365名無し~3.EXE:2010/06/25(金) 22:51:12 ID:H19ZoAX4
>>363
r<1024の時
r/1024=0
r%1024=r
366名無し~3.EXE:2010/06/26(土) 01:24:49 ID:ZJyYx8uG
これで大丈夫…か?
@echo on
set A=1023
set B=1024
set ans=$
set r=
:div
set r=%r%%A:~0,1%
set A=%A:~1%
set /a s=r/%B%
set /a r=r%%%B%
set ans=%ans%%s%
set ans=%ans:$0=$%
if defined A goto :div
if $%ans% == $$ (echo 0) else echo %ans:~1%
echo %r%
367名無し~3.EXE:2010/06/26(土) 01:40:36 ID:PZ7p49es
数値の先頭が0の時8進数と解釈されてバグる。
368名無し~3.EXE:2010/06/26(土) 02:01:46 ID:ZJyYx8uG
うおぉ
set r=0
:div
set /a r=%r%*10+%A:~0,1%
369名無し~3.EXE:2010/06/26(土) 23:23:35 ID:8YnLP4Rl
ちょっと質問があります。
Win7でシステム情報(msinfo32)のコンボーネントの"CD-ROM"や"USB"の内容をコマンドラインで
outputしてファイルに書き出したいのですが分かりません。(敢えてGUIではなくCUIで)
どういうコマンドを実行すればいいのか教授してくれれば幸いです。
370名無し~3.EXE:2010/06/26(土) 23:29:16 ID:3iiN+0H6
msinfo32 /?
371名無し~3.EXE:2010/06/26(土) 23:38:36 ID:8YnLP4Rl
>>370
回答ありがとうございます。
しかしそのコマンドを実行するとGUIが出てくるのです・・たしかXPなら確認出来た気がしますが。
372名無し~3.EXE:2010/06/27(日) 02:00:15 ID:eWryKo38
>>371
msinfo32 /categories +ComponentsUSB /report c:\usb.txt
と「ファイル名を指定して実行」でやってみて、
特にウインドウは出てこなかったけど、Win7だと出てくるの?
373369:2010/06/27(日) 03:36:24 ID:N7jjxMwC
>>372
ありがとうございます。
ログ出力はされたのですが特定のカテゴリじゃなく全ての情報が書き出されます。
Win7(Vista)だと特定のカテゴリを出力させるのは無理なんですかね・・。

>ウィンドウの件
msinfo32 /?
のコマンドなら出てきます。
教えていただいたコマンドならシステム情報を取得してログ出力ってなりました。
(ただし上記にも書いてある通り全ての情報が書き出されます)
ちょっと調べた所Vistaからそうだったみたいです。
374名無し~3.EXE:2010/06/27(日) 20:50:36 ID:9xWXQ4dR
>>373
あー確かにWin7だとうまく動作しないっぽいね
じゃあPowerShellとか使ってWMIのクラスを叩くくらい?丁度Win7から標準搭載だし

ComponentsMultiMediaCDROMの場合なら
gwmi Win32_CDROMDrive
で済むと思うけど

ComponentsUSBと同じものを拾うとしたら、Win32_PnPEntityから
それっぽい文字列になってるものを選りすぐるとか
そういう泥臭いのしかないんじゃないかなぁ
gwmi Win32_PnPEntity | ? { $_.Description -match "HID|USB|マウス" }

しかしなんでmsinfo32の機能縮小したんだろね
375369:2010/06/28(月) 17:46:44 ID:F78fsBFc
>>374
確かに機能縮小は謎ですね・・。
PowerShellはあまり使った事ありませんが
コマンドまで書いていただいたので地道に勉強してみます。
ありがとうございました。
376名無し~3.EXE:2010/06/30(水) 19:30:37 ID:YR7y5Xjc
377名無し~3.EXE:2010/07/01(木) 03:20:44 ID:QN9kIZnS
メビバイト
378名無し~3.EXE:2010/07/01(木) 10:28:01 ID:XJLs82t6
WSHやPowerShellでは何てことないのにコマンドプロンプトからだとかなり手間かかるのに
ユーザシェルフォルダーの実パス取得があるな
379名無し~3.EXE:2010/07/01(木) 15:29:42 ID:MJ7cvx7N
そんな簡単なことにかなり手間がかかるとは
380名無し~3.EXE:2010/07/04(日) 19:32:54 ID:Us0ZSBPD
>>378
「教えてください」の婉曲話法?
381名無し~3.EXE:2010/07/06(火) 08:16:48 ID:rSqQSwGr
>378
VBScriptファイル(WSH)側で実パス取得〜Echoメソッドでコンソール出力し、
その結果をバッチファイル(コマンドプロンプト)側で環境変数に入れるのが、
やはり無難だろうね。Windows9x系では使えない方法だが。
382名無し~3.EXE:2010/07/06(火) 20:51:35 ID:/e4Hb8z4
ファイル更新日時の秒まで表示する方法ってないですか?
dirも昔に比べればだいぶ機能追加されたのに、これくらいの拡張機能は付けてくれてもいいのに。。。
383名無し~3.EXE:2010/07/06(火) 21:48:04 ID:/FuRxImU
はい
384名無し~3.EXE:2010/07/07(水) 03:57:50 ID:U5LqLdYh
dirに求めるんじゃなくてファイルシステムに求めるもんだからなぁ
385名無し~3.EXE:2010/07/07(水) 07:48:21 ID:vgLuymmP
ファイルシステムは秒の情報持ってるだろ
386名無し~3.EXE:2010/07/07(水) 10:38:35 ID:oGcD6RCh
FATだと2秒単位だけどな
387名無し~3.EXE:2010/07/07(水) 10:57:56 ID:Om1IrP0e
FAT16の場合だろ?
388名無し~3.EXE:2010/07/07(水) 12:52:39 ID:h2MR7EZe
FAT32は2秒
389名無し~3.EXE:2010/07/07(水) 13:37:57 ID:t9G7XhUG
FAT12/16/32は秒の情報を5ビットで持ってるから2秒単位だったな。
exFATは10ミリ秒単位で秒を記録できるようになったらしいが。
390名無し~3.EXE:2010/07/07(水) 14:54:27 ID:6szdPZ9L
ファイル更新日時の2秒まで表示する方法ってないですか?
dirも昔に比べればだいぶ機能追加されたのに、これくらいの拡張機能は付けてくれてもいいのに。。。
391名無し~3.EXE:2010/07/07(水) 15:15:19 ID:xJAkUjN5
「秒とかバイトとか、細けえことはどうでもいいんだよ」というのが
MSの設計思想じゃないのか?
エクスプローラでのファイルサイズは、キロバイト単位でしか出ないし。
何?プロパティ?ファイルが1000個あったらどーすんだ?
あれが「人に優しいUI」だと思ってるのかね。

んでもって馬鹿企業は、フリーソフト導入一切禁止とくるからなw
392名無し~3.EXE:2010/07/07(水) 20:19:49 ID:h2MR7EZe
PowerShell なら 0.1 マイクロ秒まで表示できるな
393名無し~3.EXE:2010/07/07(水) 20:23:57 ID:h2MR7EZe
でも精度的にはミリ秒までかな
394名無し~3.EXE:2010/07/07(水) 20:45:40 ID:c7nJp2FA
そうかPowerShellがあったなぁ。
・・・出たての頃インスコしただけで難しそうで即挫折したけどがんばって勉強しようかなぁ。。。
395名無し~3.EXE:2010/07/07(水) 20:57:04 ID:c7nJp2FA
あと思い出したけど、NTFSのマルチストリームの情報を扱う手段も
ぜんぜん提供されないね。エクスプローラとかGUIでもそうだけど。
いちおうdirでは見れるようになったけど何か中途半端な扱いだし。

そもそもdirでもエクスプローラでも何でもそうだけど、
ファイルのサイズとして表示する数字の中に代替ストリームの
サイズが含まれてないってすごく変だけど、それすら改善する気は
ないのかなぁ。。。
396名無し~3.EXE:2010/07/07(水) 21:08:16 ID:G5zQV+Xi
パフォーマンスのとてつもない劣化と引換の改善なんか誰がやるか
397名無し~3.EXE:2010/07/07(水) 21:26:40 ID:c7nJp2FA
dirで/rの有無で比べるくらいだとそんなに劣化してないっぽいけどねぇ。
398名無し~3.EXE:2010/07/08(木) 01:53:36 ID:VY4uFioD
cygwin入れといて
ls -l --time-style=full-iso
399名無し~3.EXE:2010/07/08(木) 10:21:39 ID:WJ0dgMNJ
powershellでdirとやっても秒が出ないが、どうやるの?
400名無し~3.EXE:2010/07/08(木) 13:17:45 ID:A4sgn4ig
パソコンド素人なんですけど、コマンドライン等の勉強したいんですが、いい教科書等ありますか?

401名無し~3.EXE:2010/07/08(木) 15:56:59 ID:YFxuaHp+
ド素人はなにがやりたくてコマンドラインを使おうと思ったの?
402名無し~3.EXE:2010/07/08(木) 18:40:56 ID:mSeEMGGW
標準MS-DOSハンドブック
403名無し~3.EXE:2010/07/08(木) 20:37:56 ID:hO02yzdC
>>401
パソコンがド素人ってだけでワークステーションには習熟してるかもしれないじゃないか。
404名無し~3.EXE:2010/07/08(木) 21:08:31 ID:rnHHmOkM
>>395,397
お前リパースポイントと代替データストリーム混同してないか
405名無し~3.EXE:2010/07/08(木) 22:09:58 ID:9JFP55i9
>>404が混同してる悪寒
406名無し~3.EXE:2010/07/09(金) 00:19:41 ID:Iz5FPOV3
>>399
ls | select {$_.Name},{$_.LastWriteTime.ToString("o")}
407名無し~3.EXE:2010/07/09(金) 01:16:52 ID:YBwYJTPj
>>401-402-403
何がしたいと言う訳では無いのですが、
時間に余裕も出て来たので、何か勉強しようかなと思いまして。

どうせなら全く分からないものでもしてみようかと。
408名無し~3.EXE:2010/07/13(火) 14:03:52 ID:Idvtsd89
確かにVista/7だとmountvolコマンドがアクセス権絡みの問題で使い物にならないわ
409名無し~3.EXE:2010/07/14(水) 00:48:10 ID:18dmiFV+
>>407
教科書やドリルみたいなの買うと課題の不毛さに後悔するから
技術評論社のポケットリファレンスシリーズみたいな
手元に置いてパッと引けるようなのが一冊あると便利

でも先にコマンドを使う目的を見つけた方がいいと思うよ
目的がないと使い道がないから学んでも頭に入らないと思う

「毎日毎日手作業でファイルコピーしてるけど面倒くさくて嫌になった」
 ↓
「なんか金のかからない方法で自動化したい」
 ↓
「コピーコマンドを連ねてバッチファイルを作ればできるらしい」
 ↓
「じゃあまずコピーコマンドってのが何なのか知ろう」

みたいにさ
410名無し~3.EXE:2010/07/14(水) 02:32:26 ID:VDWtT12a
それだと逆引き系のリファレンスgだな
411名無し~3.EXE:2010/07/14(水) 11:48:41 ID:o241LDmC
先日環境をXPから7に移したんですが、XPには無くて7にはあるコマンド類または
その逆を解説したようなサイトがあれば教えてください。
別に全コマンドの解説でもかまいません。
412名無し~3.EXE:2010/07/14(水) 12:27:19 ID:o241LDmC
ちなみにWindows7にはXPにあったntcmds.chmのようなのは無いんでしょうか?
413名無し~3.EXE:2010/07/14(水) 15:15:12 ID:8OLeN+Q5
>>409
知りたい機能だけ調べるってやり方だと、
知ってると便利な機能や小技を見落としたままってことがあるんだよな。
414名無し~3.EXE:2010/07/14(水) 15:38:45 ID:DWnN3+Gm
415名無し~3.EXE:2010/07/14(水) 20:50:55 ID:o241LDmC
>>414
Win7とは結構違う模様。
416名無し~3.EXE:2010/07/14(水) 22:23:30 ID:khPkUWCA
たしかに同意。
今日びのWindowsのコマンドプロンプトの存在意義って、どっちかっつーと
なんかニッチな理由とか事情があって使うニッチな手段って感じのものだから、
具体的な利用目的もなしにゼロから勉強がしたいからって学ぶんであれば、
VBSとかの高機能で汎用的なスクリプト言語やJavaとかC++とかの開発言語を
勉強したほうが使い道広くて楽しいと思う。

あと、コマンドの世界って、シロート目にはけっこう複雑そうに見えるかもしれないけど
それほど奥行きある世界じゃないから、そういう他の言語を触ったことある人なら
すぐに使えるようになるし。
417名無し~3.EXE:2010/07/14(水) 22:39:46 ID:DWnN3+Gm
418名無し~3.EXE:2010/07/15(木) 00:24:52 ID:9HG2F3kZ
俺の時代はこれが評判よかったな。
http://bookweb.kinokuniya.co.jp/htm/4797306580.html

当時のこの手の書籍の中では頭抜けてマニアックで面白かった。
もう内容古いから探して入手するほどの価値ないだろうけど。
419名無し~3.EXE:2010/07/15(木) 00:58:11 ID:+yt3bVbq
NTナツカシスw
俺もそういうのいっぱい買ったわー

>>411
[スタート]→[ヘルプとサポート]あたりで「リファレンス」で検索すると
コマンドラインのリファレンスを呼び出せない?
XPには標準でそういうのがあるよ
無料だし構文や使用例も載っててヒョイと引くのに便利
420名無し~3.EXE:2010/07/15(木) 14:58:19 ID:8KdjHHcI
421名無し~3.EXE:2010/07/28(水) 18:19:36 ID:e7q9P674
コマンドプロンプトで 「@」 てのは どういう意味、用法で使いますか。
422名無し~3.EXE:2010/07/28(水) 19:04:26 ID:ZQnjYQxV
>>421
ファイル名として使用できる文字です。

またバッチファイルでコマンドの前に記入すると一時的にコマンドエコーをOFFにできます。
この機能が実装される前はバッチファイルを実行すると echo off だけは必ず表示されてしまいました。

また一部のプログラムではレスポンスファイルを指定するために利用されていましたが
これは各プログラムの独自仕様にすぎません。
423421 です:2010/07/28(水) 20:05:36 ID:e7q9P674
>>422

早速のご回答ありがとうございます。

ちょっと時間を掛けて理解してみます。
424名無し~3.EXE:2010/07/29(木) 02:33:02 ID:VEGuyEZw
@@@@@@@@@@@
425名無し~3.EXE:2010/07/29(木) 17:14:29 ID:GRiVPKFE
コマンドラインでループを見たくない時
for /f %i in ('dir /b') do @(echo %i | find "hoge")
よくこんな風にブロックの前に付けて使う
426名無し~3.EXE:2010/08/05(木) 18:43:52 ID:IZFsq8v1
コマンドプロンプトでPATH文字列から最後のフォルダ名のみ取得する方法ないですか?


c:\hoge\piyo\fuga → fuga

って感じです。

よろしくお願い致します。
427名無し~3.EXE:2010/08/05(木) 20:29:51 ID:5Vz2vpqJ
428名無し~3.EXE:2010/08/05(木) 23:12:58 ID:IZFsq8v1
>>427
ありがとうございます。

>>281 難しいですねぇ・・・・。
理解するまで20分ぐらいかかった気がします・・・。

hoge\piyo\fuga\
で&で繋いで連続置き換えした場合

hoge\ → hoge に
piyo\ → piyo に
fuga\ → fuga に
それぞれ置き換えられて、それが上書きされ続けるから
fuga が最終的な結果として残るんですね・・・。

Linuxなら
$ basename $PWD
だけでいけるんすけどね・・・。Batは大変ですねぇ・・・。
429名無し~3.EXE:2010/08/05(木) 23:49:15 ID:5Vz2vpqJ
>>428
GnuWin32 の basename.exe を使うか PowerShell で
(New-Object System.IO.DirectoryInfo c:\hoge\piyo\fuga).Name
とするかだな
430名無し~3.EXE:2010/08/06(金) 00:54:06 ID:sHYY4gZ4
>>429
いや、わざわざそんな書き方せんでもgi(Get-Item) 使えばいいだろw
431名無し~3.EXE:2010/08/06(金) 08:07:40 ID:UgjC01NQ
>>430
存在しないパスだと実行できないでしょ
432名無し~3.EXE:2010/08/06(金) 14:58:00 ID:JpyntOt0
>>428
> hoge\piyo\fuga\
> で&で繋いで連続置き換えした場合
>
> hoge\ → hoge に
> piyo\ → piyo に
> fuga\ → fuga に
> それぞれ置き換えられて、それが上書きされ続けるから
> fuga が最終的な結果として残るんですね・・・。

そうじゃなくて>>281
433名無し~3.EXE:2010/08/06(金) 16:04:26 ID:P08HpVjX
最後に\が付いてるとNGだけどな。
434名無し~3.EXE:2010/08/06(金) 21:37:36 ID:vLVu3Wuc
>>431
そこまで求められてるのかわからんが、それでも Split-Path -Leaf 程度でいいと思う
435名無し~3.EXE:2010/08/19(木) 00:49:29 ID:AKG7vMGF
おすすめのコマンド教えろ
436名無し~3.EXE:2010/08/22(日) 22:19:40 ID:SHfyvJzx
cls
オヌヌメ
437名無し~3.EXE:2010/09/08(水) 11:47:09 ID:ExZrz259
専ブラにタスクトレイに収納はあるが、タスクバーに最小化がないから
Alt+Space Nで強引にやるという方法を思いついたんだがどうやって再現すればいいのかな?
最小化で起動とかじゃなくて現在開いてる専ブラ『を』最小化させたい
438名無し~3.EXE:2010/09/08(水) 19:50:56 ID:IChAHWQA
test1.txt
test2.txt
test3.txt



を 
for %%I in (*.txt) do rename %%I n%%I
ってやると、
他は ntest*.txt になるのに、最初のtest1.txtだけが
二度処理されて、nntest1.txtになるんだけど、何故に?

ちなみに
for %%I in (*.*) do rename %%I n%%I
だとこれは起きない。
439名無し~3.EXE:2010/09/08(水) 22:10:31 ID:ESa0VeB7
for %%I in (*.txt) do rename %%I n%%I & sleep -n 10
440名無し~3.EXE:2010/09/08(水) 22:14:09 ID:5DxQlPUb
>>438
ならねーよ@Win7x64
441名無し~3.EXE:2010/09/09(木) 17:52:31 ID:C/P/KViw
>>440
おや、汲み取り式便所のカマドウマさん、お久しぶりです。

すみません、

atest.txt
btest.txt
ctest.txt

で、もっかい試して下さい。
442名無し~3.EXE:2010/09/12(日) 03:40:50 ID:O8l7L6qY
>>441
ならねーよ@FAT
443名無し~3.EXE:2010/09/12(日) 22:37:50 ID:9HrE/Va3
おや、カメムシさん。こんばんは。
7の64でお試し下さい。

バグ見つけるのって、そんなに
珍しいのか?
444名無し~3.EXE:2010/09/13(月) 01:41:02 ID:307mnpFn
誰と戦ってるの?
445名無し~3.EXE:2010/09/14(火) 00:25:01 ID:g2qAWX+s
>>435
リファレンスくらい買えよ。

>>444
バグに決まってんだろw
446名無し~3.EXE:2010/09/14(火) 03:22:10 ID:OWWZ72hR
NTFSの仕様だろ
447名無し~3.EXE:2010/09/14(火) 03:39:20 ID:I0Da5NkL
これでなった
for /l %I in (0,1,9) do echo a>>test%Itxt
for /l %J in (0,1,9) do for %I in (*.*) do ren %I %J%I
448名無し~3.EXE:2010/09/15(水) 11:46:31 ID:eJPlDDZ+
コマンドプロンプトからファイルサーバの認証通すコマンドはないでしょうか?
すみません、上手く言葉で伝えられないので、現状とやりたいことを書きます。

自端末からは自分のドメインアカウントでアクセスします。
※(自端末)-->(ファイルサーバ)

サーバ作業ではサーバのAdministratorでリモート接続しています。
※(自端末)-->(サーバ)

サーバ作業でファイルサーバにアクセスする必要が生じたため、
サーバからファイルサーバへは自分のドメインアカウントでアクセスします。
※(自端末)-->(サーバ)-->(ファイルサーバ)

このとき、エクスプローラでファイルサーバを開く場合は、
ダイアログでユーザ名とパスワードを聞かれるので問題ありません。
また、そのとき認証した後であれば、
> dir "\\fileserver\folder"
で普通にアクセスできるのですが、
エクスプローラで一旦開いてダイアログで認証した後でないと、
「ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。」
でエラーとなってしまいます。

コマンド実行時にダイアログ表示でもコマンド上でIDとパスワードを入力でもよいので、
コマンドからファイルサーバへ認証されたいです。

以上、よろしくお願いいたします。
449名無し~3.EXE:2010/09/15(水) 11:58:35 ID:LDzuokxr
net use
450名無し~3.EXE:2010/09/23(木) 12:26:56 ID:ENQspaai
テキストファイル内を検索し、特定の文字列を含む行をすべて抽出して別のログファイルに
書き出すというバッチ処理をしたいのですが、書き出す段階で詰まってしまいました。
「文字列を含む行が一切見つからなければ、何もしない」
「文字列を含む行が一つ以上見つかり、かつ書き出し先のログファイルが存在しなければ新規に作成」
「文字列を含む行が一つ以上見つかり、かつ書き出し先のログファイルが既に存在していれば追記」
という風に処理したいのですが、条件分岐をどのように記述すればいいかわかりません。
知恵を貸してください、お願いします。
451名無し~3.EXE:2010/09/23(木) 13:18:27 ID:KL5j0g2H
grepの結果をファイルに書き出してサイズが0なら削除でいいんじゃね?
452名無し~3.EXE:2010/09/23(木) 14:27:58 ID:qg7tCsFX
>> で追記書き出しすればファイルがなくても勝手に新規作成してくれる
ファイルがあればもちろん追記
条件分岐いらんでしょ
453名無し~3.EXE:2010/09/23(木) 17:34:11 ID:ENQspaai
>>451-452
文字列を含む行が一切見つからず、かつ書き出し先のログファイルが存在しなければ
空のログファイルを作成をせずに、そのまま処理を終了したいです。
やはり一度ログファイルを作成して、ファイルサイズを判定して空なら削除という
処理をするしかないですか?
>> で追記処理を始める前に、findstrで文字列が見つかったかどうかで条件分岐できるのが理想です。
454名無し~3.EXE:2010/09/23(木) 17:44:28 ID:3l4EZa2f
じゃあそうしろ
455名無し~3.EXE:2010/09/23(木) 21:35:10 ID:KL5j0g2H
仕様上、標準出力をファイルにリダイレクトするなら、結果が空でもファイルは作られる。
だからファイルサイズで分岐してサイズが0なら削除すりゃいいと書いた。結果的に同じになるから。

対象ディレクトリに一瞬でもファイルが作られるのが嫌なら、
%tmp%にでも吐きだしてからサイズ判断してコピーすりゃいい。
それすら嫌なら何らかのスクリプト言語でも使っとけ。
456名無し~3.EXE:2010/09/23(木) 22:08:13 ID:csJcKMrT
forつかえばいいよ
for /f %%i in ('コマンド') do echo %%i>>hoge.txt
なければつくられないよ
457名無し~3.EXE:2010/09/23(木) 23:49:49 ID:DcnPYhE5
俺も一旦tempfileに書き出した後にhitした場合だけlogファイルにリダイレクト(>>)するなり
連結するなりした方が良いと思うがどうしてもというのなら、
OSによってerrorkevelの数値が異なってくるかも知れないが、win2k以降のfindstrだと
hitしたか、hitしなかったかは、errorlevel(又は%errorlevel%環境変数も使える)に通知される。
詳しくは、if /?で。

rem *** 一発目のfindstrは判定だけして結果は捨てる。hitしたら改めてfindstrをやり直す ***
findstr >nul
if errorlevel 1 (
echo no_hit
) else (
echo hit
)
458名無し~3.EXE:2010/09/24(金) 21:33:40 ID:3UIxp3Zh
>>455-457
ありがとうございます、一時ファイル出力して結合という方法があることをすっかり見落としてました。
検索した対象のファイル名+ヒットした各行という形式のログファイルにしたかったので
直接出力してファイルサイズ判定は都合が悪かったのですが、この方法なら目的を果たせます。
重ねてありがとうございます。
459名無し~3.EXE:2010/10/08(金) 09:52:55 ID:uwm9Vwqh
うーん、何かのプロセスが掴んでて削除できないファイルがある。
openfiles /Local on
して再起動して確認しても誰も掴んでない。
openfiles /Query /V
ってひょっとしてサービスプロセスが握ってるのは表示されない?

具体的にいうと、
TracサーバのApacheプロセスがlogファイル握ってるのに、
openfilesで確認できない。
サービスプロセスのも表示できて且つ強制的にdisconnectさせれるようなコマンドない?
460名無し~3.EXE:2010/10/09(土) 00:51:26 ID:t24JYLHL
filemon で調べられないんでしたっけ。

そういう場合、リブートする方が早いことが多いし、面倒がない。

apache 数分止まるけど。
461名無し~3.EXE:2010/11/15(月) 11:23:52 ID:cFdTFkqY
XP以降ではatコマンドでなくschtasksを使うべきと書いているページがあるのですが、
atでも問題ないのでしょうか?調べて、結局、GUIのタスクを利用したのですが、
テキストファイルを関連付けてあるemeditorでなく、システムのメモ帳で開いてしまいます。
コマンドラインでスケジュールすれば特定のエディターを指定できるのでしょうか?
462名無し~3.EXE:2010/11/15(月) 13:04:04 ID:iSeO6BmP
好きな方選べばよろし
エディタのexeの引数にファイル名を指定すればいいだけ
463名無し~3.EXE:2010/11/15(月) 16:18:59 ID:B3yLO2jo
XPはまだ使えるがVista以降はまあ使えんよ
464名無し~3.EXE:2010/11/15(月) 22:01:26 ID:x9QGtyJG
ATコマンドで登録したジョブはSYSTEM権限で実行されるので
ユーザプロファイルに情報を登録するようなジョブや
ネットワーク上の共有フォルダに接続するようなジョブなどの場合
かなり面倒くさい細工をしなくちゃならない(一応できなくはない)

SCHTASKSはジョブの実行者を設定できるので
ローカルの単なるユーザでもドメイン管理者アカウントでも
好きなユーザの権限で実行できる利点があるが
User権限でログインしてる時にSCHTASKSコマンドを実行すると
PowerUserやAdministratorなど上位の権限ではジョブを実行できない
(ジョブを仕掛けても失敗する)

XPの出た当初SCHTASKSは管理者アカウントにログオンし直さなくても
管理者権限でコマンドやファイルを実行できる方法として挙げられていたが
リソキの隅っこに「実はできないんだな(テヘ」と書いてあってムキーッとなった

雑談はさておき>>461
462氏の言わんとしているのは

  emeditor.exe (ファイル名)

または

  (フルパス)\emeditor.exe (ファイル名)

という指定をする事で目的のファイルをemeditorで開けると言ってくれている
ATコマンドで実行する場合は /interactive オプションつけれ
そうしないと実行しても自分にゃ見えない
465名無し~3.EXE:2010/11/16(火) 00:00:16 ID:A8alUq5F
schtasksでできなくてatを使うしかないってことは何かあったかな?
466名無し~3.EXE:2010/11/16(火) 01:09:01 ID:2nYdeYXU
Vistaでat/interactiveは使えなくなった
467名無し~3.EXE:2010/11/16(火) 16:05:31 ID:TDvzZuuK
どんどん使えない仕様になるな
468461:2010/11/16(火) 17:20:16 ID:O1xaQ4cs
>>462 >>464 サンクスです。いけますた。
469名無し~3.EXE:2010/11/23(火) 20:55:37 ID:vYKBvqL/
CSVファイル中の各フィールドを抽出して一端変数に格納し、それを引数として
実行ファイルに渡すという処理をバッチでやろうとしています。
サンプルとして以下のようなfor文を書きました。
--------------------------------------------------
for /F "USEBACKQ tokens=1-6 delims==," %%A in ("C:\test\hoge.csv") do (
echo "%%A" "%%B" "%%C" "%%D" "%%E" "%%F"
hogehoge.exe "%%B" "%%A" "%%D" "%%F" "%%C%%D" "%%E"
)
--------------------------------------------------
CSVファイルの中身が
test1,test2,test3,test4,test5,test6
のように連続して並んでいる場合は、問題なく変数%%A〜%%Fに順序良く格納されるのですが
test1,test2,,test4,test5,test6
のように間に歯抜けのフィールドがあると、それより後ろのフィールドが繰り上がって
"test1" "test2" "test4" "test5" "test6" ""
のように左詰めで格納されてしまいます。これを
"test1" "test2" "" "test4" "test5" "test6"
といったように、歯抜けのフィールドはそのまま変数の中身もブランクに
もしくは次善策として半角スペースを代わりに格納するようにしたいのですが
for文以外の方法も含め、何かやり方はありますか?
470名無し~3.EXE:2010/11/23(火) 21:28:41 ID:HsWf4XRb
FOR /L の方が適切なんでない?
471名無し~3.EXE:2010/11/23(火) 21:29:23 ID:HsWf4XRb
ごめん
よく読んでなかった
CSXの中身か
472名無し~3.EXE:2010/11/23(火) 22:54:24 ID:ogLcfvq+
WSH の方が適切なんでない?
473名無し~3.EXE:2010/11/23(火) 23:08:05 ID:e+Jq/zMX
テキスト整形が得意 or CSVの読み書きのインターフェイスのあるスクリプト使う方が楽だよ。
474名無し~3.EXE:2010/11/24(水) 02:15:15 ID:9z2PCu2J
最初から空白を付加したcsvを作るようには出来ないのかな?
出来ないのなら後から整形すればいい
もちろん一旦作業ファイルを作らずとも二重forループで一気に書く方が良いかも知れんが。

setlocal EnableDelayedExpansion
@echo off
echo.>%temp%\tmp.csv
for /f "usebackq tokens=1* delims=" %%i in ("c:\hoge.csv") do (
set line=%%i
set line=!line:,,=, ,!
echo !line! >> %temp%\tmp.csv
)
endlocal
for /f "usebackq tokens=1-6 delims=," %%i in ("%temp%\tmp.csv") do (
echo %%i %%j %%k %%l %%m %%n
)
rem del %temp%\tmp.csv
475名無し~3.EXE:2010/11/24(水) 02:34:19 ID:9z2PCu2J
先頭がNULLの場合が抜けていた
最初のループ中でecho出力する直前に1行追加

if "!line:~0,1!" equ "," set line= !line!
476名無し~3.EXE:2010/11/24(水) 02:59:52 ID:9z2PCu2J
ああーダメだ。全部やり直し。
下から3行目は環境変数oに半角スペースを代入してくれ(投稿するときに削られてるだろうから)

@echo off
setlocal EnableDelayedExpansion
echo.>%temp%\tmp.csv
for /f "usebackq tokens=1* delims=" %%i in ("c:\hoge.csv") do (
set line=%%i
set line=!line:,= ,!
for /f "usebackq tokens=1-6 delims=," %%j in (`echo !line!`) do (
set j=%%j
set k=%%k
set l=%%l
set m=%%m
set n=%%n
set o=%%o
if "!j!" neq " " set j=!j:~0,-1!
if "!k!" neq " " set k=!k:~0,-1!
if "!l!" neq " " set l=!l:~0,-1!
if "!m!" neq " " set m=!m:~0,-1!
if "!n!" neq " " set n=!n:~0,-1!
if "!o!" equ "" set o=
echo '!j!' '!k!' '!l!' '!m!' '!n!' '!o!'
)
)
477名無し~3.EXE:2010/11/24(水) 18:20:36 ID:ISHB697F
こりゃだめだ
478名無し~3.EXE:2010/11/24(水) 18:41:39 ID:TgFKsTt0
"test1","test2","","test4","test5","test6"

みたいなCSVにしときゃ済む話では?
479名無し~3.EXE:2010/11/24(水) 20:39:53 ID:TgFKsTt0
無理やり前述のフォーマットにしてから読むパターン

@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in ("C:\test\hoge.csv") do (
set t=%%i
set t="!t:,=","!"
for /f "usebackq tokens=1-6 delims=," %%a in (`echo !t!`) do echo %%~a,%%~b,%%~c,%%~d,%%~e,%%~f
)
480名無し~3.EXE:2010/11/24(水) 21:56:08 ID:ISHB697F
a,"b,c",d
とかでもうまくいくか?
481名無し~3.EXE:2010/11/24(水) 22:00:56 ID:TgFKsTt0
せめて試してから聞けよ
482名無し~3.EXE:2010/11/24(水) 22:35:15 ID:w7d1oTak
>>469です。
ID:TgFKsTt0さん、その発想はなかったです。>>479の方法ですと歯抜けフィールドは
nullとして変数に格納されるので特にいい感じです。
ID:9z2PCu2Jさんもありがとうございます。

ですがいずれの場合でも、遅延環境変数のためCSVのフィールド内に半角の!が
含まれていると詰みますね。含まれる可能性があるかないかは現時点で何とも言えないのですが。

しかしデリミターで抽出された対象がnullだと、後ろの対象を繰り上げて変数に格納する
というこのバッチの挙動が今一つ腑に落ちないのですが、どういった理由からこのような
仕様になったのでしょうか?

ちなみここのところの長期規制につき、代理レスを依頼してるためIDが一定しないと思います。
483名無し~3.EXE:2010/11/24(水) 22:40:05 ID:TgFKsTt0
>>482
そもそもデフォルトのデリミタである空白で一つ一つ区切られるような仕様だったら
えらく使用に困る代物だろ?

連続した区切り文字は一つの区切りとして考えるのは当然の流れ。
484名無し~3.EXE:2010/11/24(水) 23:08:48 ID:TgFKsTt0
遅延展開が使えないならこんなのでもいいんじゃないのかね。

@echo off
for /f "usebackq delims=" %%i in ("csv.txt") do (
call :sub %%i
)
goto :eof
:sub
set t=%*
set t="%t:,=","%"
for /f "usebackq tokens=1-6 delims=," %%a in (`call echo %%t%%`) do echo %%~a,%%~b,%%~c,%%~d,%%~e,%%~f
goto :eof
485482:2010/11/24(水) 23:51:10 ID:iNcoiXRQ
>>483-484
ktkr!!!
ありがとうございます、おかげさまで望みどおりの動作になりました。
そういえばこの遅延環境変数回避のテクニック、自分も以前使ったことがあるのに忘れてました;

連続した半角スペースが全部デリミタとして機能したら問題だというのは分かりますが
繰り上げると今回のCSVのように、何番目の要素かということが重要な意味を持つ場合に
問題になる気がします。つまるところバッチが使われるシーンではそういう例は稀なのでしょうか。

私は文字列操作の経験があまりないので、今後お話しいただいた内容を頭の片隅に
入れときながら注意していこうと思います、ありがとうございました。
486名無し~3.EXE:2010/11/26(金) 03:25:44 ID:3vgrgtW/
(`call echo %%t%%`) callは不要
487名無し~3.EXE:2010/11/28(日) 15:33:50 ID:XlH6ZNHD
テキストファイルの中身を探索して、正規表現に「合致した範囲だけ」を抽出する方法ってありますか?
findstr /r 文字列 パス
で正規表現探索は出来るのですが、出力されるのが行単位なので、さらに各行内の
正規表現にマッチした部分まで絞り込んで抽出したいのです。
488名無し~3.EXE:2010/11/28(日) 23:41:54 ID:kjMh0K6B
つwsh
489名無し~3.EXE:2010/12/13(月) 22:48:34 ID:KFG9s2Ni
【コラム】Windows XPスマートチューニング (14) 「reg.exe」の使い方を覚える その1 | パソコン | マイコミジャーナル
http://journal.mycom.co.jp/column/winxp/014/index.html
【コラム】Windows XPスマートチューニング (14) 「reg.exe」の使い方を覚える その1 | パソコン | マイコミジャーナル
http://journal.mycom.co.jp/column/winxp/014/index.html
環境変数を埋め込むバッチファイルを作成できるか - Windows XP - 教えて!goo
http://oshiete.goo.ne.jp/qa/3886755.html
システム環境変数が保存されない? - Windows XP - 教えて!goo
http://oshiete.goo.ne.jp/qa/1534071.html
PATHのリフレッシュ方法はにでしょうか? - Windows系OS - 教えて!goo
http://oshiete.goo.ne.jp/qa/1939243.html
教えて!goo[システム環境変数 レジストリ]についての検索結果 ( 約36件中 1〜10件を表示 ) - 教えて!goo
http://oshiete.goo.ne.jp/search_goo/result/?qatype=qa&st=all&sr=norm&tf=all&good=0&dc=10&type=html&code=utf8&MT=%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0+%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA




490名無し~3.EXE:2010/12/13(月) 23:25:15 ID:EVo3YvrE
どうでもいいが、教えて、は最早サーチスパムだよな
491名無し~3.EXE:2010/12/18(土) 00:31:31 ID:mG6dcAQg
echo パスを追加
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path /t reg_sz /d "%path%;c:\bin\uty"
492名無し~3.EXE:2010/12/18(土) 17:34:22 ID:EcM8V9cL
setx path "%path%;c:\bin\uty" /m
493名無し~3.EXE:2010/12/22(水) 08:46:53 ID:HhLXioMQ
windows7 64bitではntcmds.chmはどこに行ったんでしょうか
494名無し~3.EXE:2010/12/22(水) 13:52:27 ID:LoRW5TNX
無くなった。

しょうがないから自分で作った
495名無し~3.EXE:2010/12/22(水) 22:53:09 ID:XaXxiced
496名無し~3.EXE:2010/12/23(木) 17:29:45 ID:9ROm8nmO
質問です

type 初期化.txt |format G: /FS:FAT32 /V:DATA
(echo DATA&echo y)|format G: /FS:FAT32 /V:DATA

上は正常に終了するのに下は

ファイル システムの種類は FAT32 です。
ドライブ G: の現在のボリューム ラベルを入力してください ドライブに無効なボリュー
ム ラベルを入力しました。

となってうまくいきません。理由を教えてほしいです。
ただし、初期化.txtの中身は

DATA
y

の2行(改行付き)です。お願いします。
497名無し~3.EXE:2010/12/23(木) 19:38:03 ID:5eVdfHFt
cmd /c "echo DATA&echo y"|format G: /FS:FAT32 /V:DATA
498496:2010/12/23(木) 20:37:42 ID:9ROm8nmO
>>497
うまくいきました。cmd /c、勉強してみます。ありがとうございました。
聞いてみてよかったです。では。
499名無し~3.EXE:2010/12/23(木) 22:12:25 ID:RnH41D1X
初心者スレに書いたのですが、なにもレスが無かったので
こちらで質問させてください。

以下のようなschtasksでタスクを作り、その日の01:13だけにR:\test.batを実行させるタスクを作りました。

SCHTASKS /Create /SC ONCE /TN TESTJOB /TR R:\test.bat /ST 01:13

R:\test.batがその日の01:13に実行されたのですが、
タスクはスケジューラーでみると次回実行時刻が空白のまま残っています。
タスクの実行後自動的にこのタスクを削除する指定はどうやるのでしょうか?
タスクスケジューラーの設定をみると
「タスクの再実行がスケジュールされてない場合に削除されるまでの時間」という設定があって
この設定をどうやって、CLIで指定するかです。


OSはWindows7 Ultimate 64bit
500名無し~3.EXE:2010/12/23(木) 22:41:56 ID:5eVdfHFt
>>496-497
勉強するったって、勉強しても無理だと思うぞ

ヒント1
(echo DATA&echo y)|more>a.txt
a.txtをメモ帳で開いて、空白の有無をチェックしてみ

ヒント2
(echo DATA&echo y&echo %%cmdcmdline%%)|more>a.txt
なぜそうなるかこれで分る
501名無し~3.EXE:2010/12/23(木) 22:46:12 ID:5eVdfHFt
>>499
/?したら/zが目に付いたが?
502名無し~3.EXE:2010/12/23(木) 22:52:20 ID:RnH41D1X
>>501

C:\>SCHTASKS /Create /SC ONCE /TN TESTJOB /TR R:\test.bat /ST 23:13 /Z
エラー: タスク XML に必須の要素または属性が含まれていません。
(40,4):EndBoundary:
C:\>

/Kとかもやってみたしうまくいかない。
503名無し~3.EXE:2010/12/23(木) 23:00:45 ID:izmRYVGw
>>496
こういう方法もあるぞ

echo Y|format g: /fs:fat32
label g:DATA
504496:2010/12/24(金) 00:26:20 ID:Gp00iisX
>>500
追加情報ありがとうございます。

cmd /cを使わないとyだけがformatコマンドに送られるからだめなのと解釈したのですが、
まちがいでしたか?

ヒントは実行しましたが、すいません、理解できませんでした。難しいです。

>>503
レスありがとうございます。ですが、1行目でエラーが出てしまいます。
505503:2010/12/24(金) 00:51:21 ID:tS5P4SyW
>>496 = >>504
ごめん
1行目は、
echo y|format g: (/q) /fs:fat32 /v:
だった
2行目をなくすには
echo y|format g: (/q) /fs:fat32 /v:DATA
だね
(Win7のcmd.exeとUSBメモリーで確認した)
506名無し~3.EXE:2010/12/24(金) 00:56:06 ID:rJh8lKs2
空白を_で表すと

DATA_
y_

になってるだろ?だからエラーになる

2つ目実行したら

DATA
y
C:\Windows\system32\cmd.exe /S /D /c" ( echo DATA & echo y & echo %cmdcmdline% )"

つまり、パイプの前は(echo DATA&echo y)が( echo DATA & echo y )に編集されてサブシェルで実行されるってこと
507名無し~3.EXE:2010/12/24(金) 02:53:19 ID:rJh8lKs2
508名無し~3.EXE:2010/12/24(金) 02:57:38 ID:rJh8lKs2
509名無し~3.EXE:2010/12/24(金) 21:27:08 ID:Gp00iisX
>>506
たびたびありがとうございます。理解しました!敗因はパイプとリダイレクトでは
挙動が違うことに気づかなかったことと、ヒントをコマンドプロンプトから実行した
ことです。結果、こうなってしまって、わけがわからなくなりました。

DATA_
y_
%"cmd.exe" /k "cd D:\TXT"%_

%cmdcmdline%をググるか、ヒントをバッチで実行すれば済んだのですが。
なさけないです。丁寧な説明、ありがとうございます。

>>505
確認までしていただいて恐縮です。情報提供不足でした。実はGドライブには元から
ボリュームラベルがついているのですよ。
その場合、Formatコマンドはラベルの再入力を求めるので、yだけではエラーになるのです。
蛇足ですが、コマンドラインはPerlスクリプト内で使用しています。モジュールを組み込む
より、qx(コマンドライン)のほうが楽ですので。筋が悪いですが(^^;)
アドバイス、ありがとうございます。
510名無し~3.EXE:2010/12/24(金) 22:22:09 ID:rJh8lKs2
%%があったらバッチ
511496:2010/12/24(金) 22:52:47 ID:Gp00iisX
>>510
覚えておきます。
512名無し~3.EXE:2010/12/26(日) 12:45:43 ID:ciLh5r7B
SCHTASKS /Create /SC ONCE /TN TESTJOB /TR R:\test.bat /ST 01:13
ユーザー名・パスワードとZ V1を付けたらうまくいった。


SCHTASKS /Create /SC ONCE /TN TESTJOB /TR R:\test.bat /ST 01:13 /RU mona /RP password /Z /V1
513名無し~3.EXE:2011/01/08(土) 00:25:22 ID:KRZHH0QO
ドメインユーザのセキュリティタブの項目を追加するコマンドってありますか?
514名無し~3.EXE:2011/01/08(土) 06:09:28 ID:uHaCk9v5
if not match "%~1" *.txt echo %~1 is not text
みたいな処理ってどう書けばいいの
515名無し~3.EXE:2011/01/08(土) 09:36:00 ID:UiJAiM7p
if not "%~x1" == ".txt" (echo %~1 is not text)
516名無し~3.EXE:2011/01/08(土) 14:51:51 ID:wFF3NM0U
if /I not "%~x1" == ".txt" echo %~1 is not text
517名無し~3.EXE:2011/01/08(土) 15:27:21 ID:MuSt9ita
ワイルドカードや正規表現の一致のチェックするコマンドってないんだよな。
一応検査対象の文字列をファイルに保存してfindstrすれば正規表現の方はできそうだけど。
518名無し~3.EXE:2011/01/08(土) 15:56:23 ID:wFF3NM0U
(echo %~1)|findstr ".txt$" && echo %~1 is not text
519名無し~3.EXE:2011/01/12(水) 19:09:19 ID:PoyWM9uQ
batファイルで
a.01
a.02
a.03
といったバイナリファイルをまとめてドロップすると
copy /b "a.01"+"a.02"+"a.03" "a"
という処理をさせたい(ファイル名はスペースを含んだりさまざまです)のですがどう書けばいいですか?
ドロップするファイル群の名前はみんな同じかとか、連番の拡張子かとかは人間側で判断しようと思っています
単純に入力部分にワイルドカードが使えるのかなと思ったのですが駄目でした
あとドロップで渡されたときのファイルの順番は必ずしもファイル名の昇順とは限らないんでしょうか
520名無し~3.EXE:2011/01/12(水) 22:59:55 ID:aRkUDzA8
これはおまえら(含む俺)が大好きなforと遅延展開を活用して作るのにちょうどいい難易度の課題だな。

ファイル名に空白文字入るかどうか、とか、結合する順番は単純に文字列ソート順でいいのかどうか、とか、
出力先のファイル名どう決めるか、とか、最大ファイル数あるいは最長パス長どうするか、とか、
仕様の細かい部分は考えるだけでカウパー出てきたぜ。
521名無し~3.EXE:2011/01/12(水) 23:20:20 ID:NzY94YN0
>>519
copy /b + %* %~dpn1
522名無し~3.EXE:2011/01/12(水) 23:24:44 ID:rNDzd7N5
最大ファイル数とか、どうするかってどうにもならないでしょ。
523名無し~3.EXE:2011/01/13(木) 01:31:36 ID:8DexkebC
ruby -e "`copy /b #{ARGV.sort.join(' + ')} eroero.avi`" %*
524名無し~3.EXE:2011/01/13(木) 09:44:27 ID:Cb6o+0JX
for /f "delims=" %%I in ('dir /b /o-n %*') do copy /b + "%%~I" ,, "%%~dpnI"
525名無し~3.EXE:2011/01/13(木) 10:46:27 ID:Cb6o+0JX
copy nul "%~dpn1"
for /f "delims=" %%I in ('dir /b /o-n %*') do copy /b "%%~dpnI" + "%%~I" "%%~dpnI"
526名無し~3.EXE:2011/01/17(月) 20:32:44 ID:cAtwP0h5
dsquery group -name groupというコマンドを実行して、
コマンド実行で返ってきた値が入っているか、
IFで判定したいんですがどうやったらできますか?
いろいろやってみたんですが、全然うまくいかない…
527名無し~3.EXE:2011/01/17(月) 20:38:39 ID:Vn6Pawll
for /f "delims=" %%I in ('dsquery group -name group') do echo %%I
528名無し~3.EXE:2011/01/17(月) 21:26:49 ID:cAtwP0h5
>527
いけました!ありがとうございます。
もう一点質問なんですが、inの中って変数展開できるんでしょうか?
for /f "delims=" %%I in (dsquery group -name %%temp) do echo %%I
みたいに記載すると、うまく展開されません。

529名無し~3.EXE:2011/01/19(水) 13:10:47 ID:wn7tagK/
%temp%
530名無し~3.EXE:2011/02/13(日) 12:38:12 ID:xOI1nq+5
LAN内のPCやプリンタ、ネットワーク機器のIPアドレスを
調べて一覧にするコマンドプロンプトのコマンドはありませんか?
固定IPかDHCPから割り振られたIPか、わかると更に嬉しいです。
531名無し~3.EXE:2011/02/13(日) 13:24:32 ID:qa6bFQMw
こういう人がいるからいつまでたってもNetBIOSがなくならない
532名無し~3.EXE:2011/03/03(木) 05:16:29.94 ID:DEBzw2H3
あるテキストファイル(hoge.txt)に、数行の文字列があり、その最後の行に「空白行(改行のみの行)」が含まれています。
この最後の空白行だけを、コマンドで削除したいんですが、どのようなコマンドになるでしょうか?
よろしければご教授願います・・・。
533名無し~3.EXE:2011/03/03(木) 06:55:03.72 ID:Ir7qnM+/
for /f "usebackq delims=:" %%i in (`findstr /r /n "." "hoge.txt"`) do @set n=%%i
(for /f "usebackq tokens=1,* delims=:" %%i in (`findstr /r /n ".*" "hoge.txt"`) do @(
if /i %n% GEQ %%i echo,%%j))>hogehoge.txt
534名無し~3.EXE:2011/03/03(木) 17:03:37.23 ID:yGt/TIu+
>>532
sort /+100000 hoge.txt|more +1|sort /+100000 /o hoge.txt
535名無し~3.EXE:2011/03/05(土) 22:32:31.95 ID:oJAp4RiF
すみません、お伺いしたいのですが、
とあるスクリプトを毎ログオン時に実行させたいのですが、
普段使ってるのは管理者権限のないアカウントで、
そのスクリプトはその管理者権限のないアカウントで
ログオンしたときにも、管理者権限で走らせたいんです。
また、そのPCを使用している人間に管理者パスワードを知られないようにしたいんです。
schtasks の onlogon で /ru を使うと、/ru で指定したユーザがログオンしたときにしか
スクリプトが走らないと思うんです。
(今、実験できる環境がありません。すいません。)
どのようにすればよろしいでしょうか?
まことに申し訳ありませんがご教授お願いします。
536名無し~3.EXE:2011/03/05(土) 23:32:58.86 ID:gtOstS9Q
無理です。
ログオン時じゃなくて起動時だったらスタートアップスクリプトで出来そうだけど。
537名無し~3.EXE:2011/03/05(土) 23:39:20.92 ID:Gd+QfTap
タスクスケジューラでできね?
538名無し~3.EXE:2011/03/06(日) 12:41:29.63 ID:+PnaHAZD
>>535
schtasksはログオンしてるユーザと同等かそれ以下の権限のアカウントでしか実行できない糞仕様
539名無し~3.EXE:2011/03/06(日) 12:50:55.62 ID:+PnaHAZD
>>535
ついでに

レジストリのHKMLのスタートアップ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
ここに新しい項目作ってスクリプトを実行するよう登録してみ

HKMLなのにログオンしないと走らない糞仕様だから>>535の目的には使えるかもよ
ただAdministrator権限じゃなくてSYSTEM権限で実行されるんでそこんとこ留意
540名無し~3.EXE:2011/03/06(日) 21:09:03.09 ID:+5J+PRQW
にーさん、にーさん、
HKLM -> HKLM
慌てすぎ。
541名無し~3.EXE:2011/03/06(日) 21:11:52.87 ID:fQfubHhk
542名無し~3.EXE:2011/03/06(日) 21:25:35.97 ID:vb/ezcOK
543名無し~3.EXE:2011/03/06(日) 21:37:47.26 ID:+5J+PRQW
慌て者はボクだったよ、
さよなら……
544名無し~3.EXE:2011/03/06(日) 23:42:16.74 ID:JPIvqzw6
>>543
指摘ありがと
吊ってくる
545535:2011/03/07(月) 00:55:58.18 ID:QCcxjvdA
皆様、にありがとうございます。


>>539さんに教えていただいた方法を試してみたいと思います。

546535:2011/03/07(月) 01:01:48.26 ID:QCcxjvdA
途中で書き込むボタン押してしまいました・・・・crz

改めて、皆様本当に、いろいろ考えていただき、
ありがとうございました。
それでは、失礼いたします。
547名無し~3.EXE:2011/04/24(日) 00:53:46.83 ID:ghmTn2ef
拡張子を.batにしたいのですが
a.txtを作って
a.batに名前を変更
a.bat.txtとなって拡張子はそのまま
となってしまいます

めちゃくちゃ初歩的な質問ですみません
誰か教えてください
548名無し~3.EXE:2011/04/24(日) 01:01:17.41 ID:e1cTj/Z7
>>547
「登録されている拡張子は表示しない」
でググれ
549名無し~3.EXE:2011/04/24(日) 01:04:13.70 ID:ae46KHG2
ren a.bat.txt a.bat
550名無し~3.EXE:2011/04/24(日) 01:07:33.93 ID:ghmTn2ef
>>548
助かった
551名無し~3.EXE:2011/05/10(火) 22:54:24.51 ID:22nx6PrC
バッチファイル中の文字置換について質問です。

与えられた引数を元にした名前のフォルダを作成するバッチファイルを
作成したのですが、フォルダの名前に使用できない文字(\/:*?"<>|)が
含まれる場合があるので、その部分は適時全角の近似文字に
置換してからフォルダを作成しています。
以下の方法で \/:?"<>| については対処できたのですが、残りの
* (半角アスタリスク)だけはどうしても*(全角アスタリスク)に
置換できません。他と同じように記述すると、構文エラーになってしまいます。
* を * に置換する方法はありませんか?よろしくお願いします。

C:\>sample.bat "dir\/:?<>|"test"
==================================================
@echo off
setlocal

set dir_name=%1

set dir_name=%dir_name:\=¥%
set dir_name=%dir_name:/=/%
set dir_name=%dir_name::=:%
set dir_name=%dir_name:?=?%
set dir_name=%dir_name:<=<%
set dir_name=%dir_name:>=>%
set dir_name=%dir_name:|=|%
set dir_name=%dir_name:"=”%
set dir_name=%dir_name:~1,-1%

mkdir "C:\%dir_name%"
==================================================
C:\>dir
2011/05/10 22:45 <DIR> dir¥/:?<>|”test
552名無し~3.EXE:2011/05/10(火) 23:47:34.27 ID:BGdDMW0l
あまりにも表示される情報が多いので、最初の方の情報が消えてしまいます。
最初の10行程度でいいので見る方法はないでしょうか?
553名無し~3.EXE:2011/05/11(水) 02:15:03.54 ID:cijUUQbA
>>551
set "dir_name=%dir_name:*=*%"
でもだめ?ためしてないけど

>>552
more
554名無し~3.EXE:2011/05/11(水) 05:54:41.46 ID:cRdfPQu8
@echo off
set dir_name=a**b*c***e
set index=0
set out=
:loop
call set t=%%dir_name:~%index%,1%%
if "%t%"=="" goto :end
if "%t%"=="*" (
set out=%out%*
) else (
set out=%out%%t%
)
set /a index+=1
goto :loop
:end
echo %out%
555名無し~3.EXE:2011/05/11(水) 14:18:14.26 ID:e30TubL/
555
556551:2011/05/11(水) 23:32:32.40 ID:7phbG/we
>>553
ダメみたいです

>>554
多分set系の質問で毎度お世話になっている方だと思いますが、ありがとうございます。
いつも高度な組み方で舌を巻いているのですが、今回のcall部分の動作がわかりません。
callが対象にとれるのは他のバッチファイルか、もしくは同じファイル内のサブルーチン(ラベル)
だと思っていたのですが、今回はそのいずれでも無いように見えます。
一体どういった原理でしょうか?
557名無し~3.EXE:2011/05/12(木) 01:14:34.68 ID:5cpccTMq
>>556
多分人違いだし、回答してる奴は結構人数いると思うし
それにそんなに高度な代物じゃないのだが…

変数展開が2段階でなされるのでenabledelayedexpansionを
使わなくても遅延展開が可能になるところがいいのだけど
原理とか聞かれると弱いw
経験的に使っててソースとか出せんわ。

http://otnx.jp/CMD/index.php/call/?%A5%B3%A5%DE%A5%F3%A5%C9%CA%CC/call
この辺とか見りゃ一応は書いてあるけど、公式のヘルプとかその手の奴ってあるのかわからん。
558名無し~3.EXE:2011/05/12(木) 14:44:56.86 ID:iMJdLd8m
>>552
moreでもいいけど、プロパティで画面バッファを1000〜2000行にしとけば逆スクロールで見られる
559551:2011/05/12(木) 18:36:53.53 ID:IzWOSOP9
>>557
callにこんな使い方があったなんて、目から鱗です。
こんな使い方ができるなら、if文の中で()を
含むsetコマンドを使うと構文エラーになる
恐れがあるのでいちいち外部サブルーチンに
callで飛ばしてからsetしてましたが、これでだいぶ
スマートに記述できます。ありがとうございます!

と思ったら、&(半角アンド)も引数で渡される
可能性があることを失念してました orz
&は""つきなら変数に格納できるんですが
前述の通り、フォルダ名に使用するのでこの方法も使えません。
再度質問で申し訳ないのですが、何かうまい方法はありませんか?
560名無し~3.EXE:2011/05/12(木) 19:26:30.09 ID:LErTZijl
無限に広がるbat以外の選択肢
561名無し~3.EXE:2011/05/13(金) 01:08:39.71 ID:kUCy/KG/
badな選択肢やね
562名無し~3.EXE:2011/05/13(金) 04:45:23.20 ID:oKY0NEqs
うわぁ・・・・・・>>561
563名無し~3.EXE:2011/05/13(金) 07:57:58.99 ID:JjcdbuQQ
PowerShell に9割方移行した俺に死角はなかった
564名無し~3.EXE:2011/05/13(金) 08:14:54.01 ID:dxRHMzGd
×死角
○資格
このスレ的にはw
565名無し~3.EXE:2011/05/13(金) 20:51:26.00 ID:NAZVaB87
俺は人間が丸いから四角はないなw
566名無し~3.EXE:2011/05/13(金) 22:22:36.34 ID:KrF4BoQE
ウニみたなトゲトゲで遠くから見たら丸く見えるだけじゃないの
567551:2011/05/14(土) 08:11:56.82 ID:vQ4YR2pY
やっぱりバッチでやるのは無理ですかね。まさかこんなことのせいでで手詰まりになるとは・・
今から新しく別のスクリプトやるならPowerShellもPerlもJavaScriptでも手間は変わらないけど、どれがいいんだろう。
568名無し~3.EXE:2011/05/14(土) 14:20:39.32 ID:HQ7w1xFo
バッチでは無理だと思う。
そもそもバッチファイルに&以降のパラメタは受け渡されてこないので。
(コマンドシェルの構文解析で&以前のコマンドと&以降のコマンドの2つに分離されてしまう
 ということは、&以前のコマンドであるバッチスクリプトからはどうあがいても
 &以降のコマンドを知るすべは無いと思われる)
入力方法を変えればいけるけど。(set /pかファイルから入力するとかすれば回避できる)

JavaScriptがWebページにも応用できて良いんじゃないか?
ただしWSH(cmd.exeから呼び出す)で使うんなら上記と同じことになるんで別のシェルを用意しないと。
まあ、俺は良くは知らないがどのシェル(Perlでも)でも入力に制限がつくんじゃないかな?
569名無し~3.EXE:2011/05/14(土) 14:33:27.36 ID:pQZ75ggQ
>&は""つきなら変数に格納できるんですが
>前述の通り、フォルダ名に使用するのでこの方法も使えません。
って話が良く分からないけど、""付けて引数を渡して、フォルダ名は""外して作ればいいんじゃなくて?
570名無し~3.EXE:2011/05/14(土) 15:39:48.37 ID:HQ7w1xFo
あれ? ""で囲って入力するんなら何がダメなんだろう?
もしかして>>551>>554を組み合わせられないの?
それとも&は小文字にしたいの?
@echo off
set dir_name="%~1"
set dir_name=%dir_name:&=&%
call :2nd_step %dir_name%
set out="%out:&=&%"
echo %out%
mkdir c:\%out%
goto :eof

:2nd_step
set dir_name=%~1
set index=0
set out=
:loop
call set t=%%dir_name:~%index%,1%%
if "%t%"=="" goto :end
if "%t%"=="*" (
set out=%out%*
) else (
set out=%out%%t%
)
set /a index+=1
goto :loop
:end
571名無し~3.EXE:2011/05/14(土) 21:23:39.65 ID:iN5VGoJk
&は!の遅延展開つかわんとだめじゃないの?
572名無し~3.EXE:2011/05/15(日) 22:44:32.57 ID:FQFzH4nC
直前に実行したコマンドの結果ってどっかの変数に入ってないですか?

ipconfig /all | find "Default Gateway" | find "192.168.11.1"
が成功してたら処理続行、成功してなかったら(何も返ってこなかったら)exit
みたいなバッチを書きたいんですが。

573名無し~3.EXE:2011/05/15(日) 22:50:21.60 ID:CD6nL7GM
&&
||
574名無し~3.EXE:2011/05/15(日) 22:52:33.37 ID:BUUtILe0
echo %errorlevel%
575572:2011/05/15(日) 22:56:59.06 ID:FQFzH4nC
あ、自己解決て書こうとしたら解答いただけてましたw

errorlevelで見れました。

ありがとうございました。
576551:2011/05/17(火) 21:46:05.73 ID:cdAPGdzL
>>551=559です。時間をあけてしまってスイマセン。
パスを""で括るとき、必ずしも一番前と後ろで括る必要が無いことを初めて知りました。

C:\>mkdir foo" "bar
C:\>dir
2011/05/17 21:25 <DIR> foo bar

これを使えばできるだろうと思いましたが、どうにもうまくいきません orz
フォルダ名に使えない(\/:*?"<>|)以外は、極力引数で渡された文字を
そのまま引き継ぎたいです。
なので半角&も、全角&に変換せずにそのままフォルダ名に使おうと考えています。
様々な文字が渡される可能性があるので、他にも半角スペースや()なんかも注意が必要だと思います。
目的を再度まとめると以下のような感じでしょうか。

[目的]
・sample.bat "文字列" の形で引数が渡されるので、その文字列を使ったフォルダを自動作成するバッチファイル
・フォルダ名に使えない(\/:*?"<>|)については、それぞれ近似の全角記号に置き換える
・上記のダメ文字以外は、極力元の文字や記号をフォルダ名に反映させる(半角&記号など)

一応自力で試行錯誤してみて、以下のようなバッチファイル作ってみたのですが
望み通りの動作になりません。特に"と、&や半角スペースが同時に使われている
場合などの処理が難しいです。バッチでうまいことやる方法は無いでしょうか?
577551(分割 1/2):2011/05/17(火) 21:53:30.09 ID:cdAPGdzL
※注意※
正しく動作しません、あくまで参考です

C:\>C:\sample.bat "h ge|<a>bc"
==================================================
@echo off

call set char_nam="%~1"
echo 入力:%char_nam%

set char_nam=%char_nam:\=¥%
set char_nam=%char_nam:/=/%
set char_nam=%char_nam::=:%
set char_nam=%char_nam:?=?%
set char_nam=%char_nam:<=<%
set char_nam=%char_nam:>=>%
set char_nam=%char_nam:|=|%
set char_nam="%char_nam:"=”%"
set char_nam="%char_nam:~2,-2%"

set index=0
set out=
578551(分割 2/2):2011/05/17(火) 21:54:48.47 ID:cdAPGdzL
:loop
call set t="%%char_nam:~%index%,1%%"
call set t=%%t:"=""%%
call set t=%%t:~1,-1%%
if %t%=="""" (
set out=%out%
)
if %t%=="" (
goto :end
) else if %t%=="*" (
set out=%out%*
) else if %t%=="&" (
set out=%out%"&"
) else if %t%==" " (
set out=%out%" "
) else (
set out=%out%%t:~1,-1%
)
echo out:%out%

set /a index+=1
goto :loop

:end
set out=%out:~2,-2%
set dir_nam=C:\%out%
echo ディレクトリ名:%dir_nam%

mkdir %dir_nam%
==================================================
579551:2011/05/17(火) 21:56:11.22 ID:cdAPGdzL
C:\>dir
2011/05/17 21:50 <DIR> h ge|<a>bc

C:\>C:\sample.bat "h ge&<a>bc"
( の使い方が誤っています。


思ったより長くなってしまいました。
お目汚しすいません。
580名無し~3.EXE:2011/05/18(水) 00:13:34.09 ID:OxvdWdxe
>>579
>>570ではどこがダメだったの?
@echo off
set dir_name="%~1"
if %dir_name%=="" echo パラメタを指定してください&goto :eof
set dir_name=%dir_name:\=¥%
set dir_name=%dir_name:/=/%
set dir_name=%dir_name::=:%
set dir_name=%dir_name:?=?%
set dir_name=%dir_name:<=<%
set dir_name=%dir_name:>=>%
set dir_name=%dir_name:|=|%
set dir_name=%dir_name:&=&のバ カ%
call :2nd_step %dir_name%
set out=%out:"=”%
set out="%out:&のバ カ=&%"
echo %out%
mkdir c:\%out%
goto :eof

:2nd_step
set dir_name=%~1
set index=0
set out=
:loop
call set t=%%dir_name:~%index%,1%%
if "%t%"=="" exit /b
if "%t%"=="*" (set out=%out%*) else (set out=%out%%t%)
set /a index+=1
goto :loop
581名無し~3.EXE:2011/05/18(水) 03:02:56.72 ID:OxvdWdxe
そうか"が途中に入ってるとダメなのか。
さらにいろいろな場合にまずいな。
順番をちょっと変えて最初の方にもっていけば入力できた場合は多分大丈夫だろう

case1: 入力できない場合は対処不可
"h ge&"<a" NG

case 2: パラメタ無しの判定もまずかった。
"a"b" NG

case 3: あと、^<(^>)の入力時もまずい。
"a^<b" NG

次にcase1はどうしようもないが、case 2,3の修正版をあげておく
582名無し~3.EXE:2011/05/18(水) 03:03:58.42 ID:OxvdWdxe
@echo off
set dir_name=%1
if not defined dir_name echo パラメタを指定してください&goto :eof
set dir_name=%dir_name:&=&のバ カ%
set dir_name="%dir_name:"=”%"
set dir_name="%dir_name:~1,-1%"
set dir_name=%dir_name:\=¥%
set dir_name=%dir_name:/=/%
set dir_name=%dir_name::=:%
set dir_name=%dir_name:?=?%
set dir_name=%dir_name:<=<%
set dir_name=%dir_name:>=>%
set dir_name=%dir_name:|=|%
set dir_name=%dir_name:^=^のバ カ%
call :2nd_step %dir_name%
set out="%out:&のバ カ=&%"
set out=%out:^のバ カ=^%
echo %out%
mkdir c:\%out%
goto :eof

:2nd_step
set dir_name=%~1
set index=0
set out=
:loop
call set t=%%dir_name:~%index%,1%%
if "%t%"=="" exit /b
if "%t%"=="*" (set out=%out%*) else (set out=%out%%t%)
set /a index+=1
goto :loop
583名無し~3.EXE:2011/05/18(水) 03:13:38.96 ID:OxvdWdxe
set dir_name="%dir_name:~1,-1%"
これ無意味だった。
さらに全角の”が両端に付くがまずけりゃcall 2nd_stepから帰ってきたあと
&と^を半角に戻す前に判定して取っちゃえ。
ちなみに&と^を一旦別文字列に置き換えてるが、これはおよそ入力しそうにない文字列に
しとけば実用上問題ないだろう。
584名無し~3.EXE:2011/05/18(水) 22:55:01.05 ID:+ThlMx5f
set dir_name=%dir_name:<=<%
set dir_name=%dir_name:>=>%
set dir_name=%dir_name:|=|%
set dir_name=%dir_name:&=&%
はset "...=..."でエスケープせんとあかんのじゃなかろか
set "dir_name=%dir_name:<=<%"
585551:2011/05/19(木) 00:34:36.79 ID:ph4ezJMK
>>580-583
ありがとうございます。おかげさまで一応の目途が立ちました。
流石にあらゆるケースに、バッチだけで対応するのは難しいですね。
まぁ " 自体の発生頻度は少ない見込みですし、その他 & や | 記号と
同時に発生する確率はほとんどないハズなので、実用上は問題ないと思います。
それでもダメだった場合は、潔くあきらめて半角&は全角&に置換するようにします。ちなみに
set dir_name="%dir_name:~1,-1%"
の部分を、思いつきで
set dir_name="%dir_name:~2,-2%"
に変更したらなぜかうまく両端の全角”が外せました(動作も問題ないように見えます)。
原理は分かりません。

>>584
精査してないですが、試してみたところうちでは正しく動作しなくなりました。
586名無し~3.EXE:2011/05/19(木) 00:59:05.21 ID:ydoAvGEN
必ず全体を""付きで貰うと条件を固定した場合はそれでもいい。
set dir_name="%dir_name:~1,-1%"
これは無意味なステートメントだが、この時点では、dir_name="”〜”"の状態となってるので。
わざと両端の""を全角で残したのにはパラメタが""付きでない場合や"のみの場合も考慮したから。

abc"&< "def
""
"
など。
なので全角の”をとるのなら>>583でアドバイスしたタイミング(callの直前でもいい)を薦める。
また無条件に取るんじゃなく全角の”であることをチェックしてから取るように。
さらに最初に""や"の場合、パラメタなしと判定することも必要になってくる。
587名無し~3.EXE:2011/05/19(木) 01:08:58.94 ID:ydoAvGEN
あと&を全角にしようとも、そもそもバッチスクリプトにきちんと入力されてこない場合は対処は無理。

"abc"&def"
"abc"<def"
588名無し~3.EXE:2011/05/19(木) 17:32:27.52 ID:ydoAvGEN
@echo off
set /p chars=新規フォルダ名を指定してください :
rem set /p chars=<"parm.txt"
if not defined chars echo 何か指定してください&goto :eof
set chars="%chars:"=”%"
if %chars%=="”" echo 何か指定してください&goto :eof
if %chars%=="””" echo 何か指定してください&goto :eof
if "%chars:~1,1%"=="”" set chars="%chars:~2%
if "%chars:~-2,1%"=="”" set chars=%chars:~0,-2%"
set chk_spc_only=%chars: =%
if %chk_spc_only%=="" echo 何か指定してください&goto :eof
set chars=%chars:\=¥%
set chars=%chars:/=/%
set chars=%chars::=:%
set chars=%chars:?=?%
set chars=%chars:<=<%
set chars=%chars:>=>%
set chars=%chars:|=|%
set chars=+%chars%
set out=
:loop
set chars="%chars:~2%
if %chars%=="" set out="%out:"=%"& goto next
if "%chars:~1,1%"=="&" set out=%out%"&"& goto loop
if "%chars:~1,1%"=="^" set out=%out%"^"& goto loop
if "%chars:~1,1%"=="(" set out=%out%"("& goto loop
if "%chars:~1,1%"==")" set out=%out%")"& goto loop
if "%chars:~1,1%"=="*" (set out=%out%*) else (set out=%out%%chars:~1,1%)
goto :loop
:next
echo %out%
mkdir c:\%out%
589名無し~3.EXE:2011/05/19(木) 17:37:49.55 ID:ydoAvGEN

パラメタの受け渡し方を変えると、かなり入力できるようになった。
""で括ってなくても、多分どのような文字列も大丈夫。

a&b^|c)>d" <e
など
590名無し~3.EXE:2011/05/19(木) 20:04:59.96 ID:awzZy/s4
WSH使えば簡単だろ?
591名無し~3.EXE:2011/05/19(木) 20:25:40.58 ID:oE2o78vn
PSのほうが簡単だろ?
592名無し~3.EXE:2011/05/19(木) 23:21:43.83 ID:AHUx1fjJ
略すな。
PS って言うと PostScript のことかと思っただろ!!
593名無し~3.EXE:2011/05/20(金) 07:31:35.62 ID:6QTPIQ/I
(アカウントを)つかいきろう
PSN
594名無し~3.EXE:2011/05/21(土) 04:02:40.61 ID:ldRm9oSy
>>590に言われたので試しにWSHで書いてみた。
結果から言うと確かに簡単だったが1から勉強した身には結構大変だった。(何時間も掛かった)
検索してみても、いろんなバージョンのJavaScriptがあって、WSHでなくHTAだったりして頭が混乱したよ。

以下実行結果(StdInを使ったのでcscriptじゃないと動作しない。wscriptはダメ)

Z:\>cscript //nologo sample.js <list.txt
sample: ヌル、又は空白.(ピリオド)のみは指定できません
sample: "com0"は予約文字列です
OK. "z:\h ge&<a>bc"
OK. "z:\a < ”bcd” *:&(¥)"
OK. "z:\abc"
sample: "z:\abc" 既に同名のファイルが存在しています。

Z:\>echo abc| cscript //nologo sample.js
sample: "z:\abc" 既に同名のファイルが存在しています。

Z:\>

--list.txtの内容--
..
com0 .txt. ..
h ge&<a>bc
a < "bcd" *:&(\)
"abc"
abc . . .
---------------
595名無し~3.EXE:2011/05/21(土) 04:03:26.22 ID:ldRm9oSy
var drivename = "z:\\";
var stdin=WScript.StdIn, arg = WScript.arguments;
var fs = new ActiveXObject("Scripting.FileSystemObject");
var rc=0;
while(!stdin.AtEndOfStream) {
try{
var out = stdin.ReadLine().replace(/^"|"$/g,"");
var out = drivename + chk_fname(out.replace(/[.\s]+$/g, "")) //後方空白削除(前後空白削除の場合は/^\s+|[.\s]+$/g)
fs.CreateFolder(out); // 自前でfs.FolderExists(out)で存在チェックしても良い
WScript.Echo('OK. "'+out+'"');
} catch(e) {
rc=999;
WScript.StdErr.Write(WScript.ScriptName.replace(/\.[^.]*$/,"") + ": ");
switch(e) {
case "E_spc_only" : WScript.StdErr.Write('ヌル、又は空白.(ピリオド)のみは指定できません\n');break;
case "E_reserved" : WScript.StdErr.Write('"' + out.replace(/\s*\..*$/,"") + '"は予約文字列です\n');break;
default : WScript.StdErr.Write('"' + out + '" ' + e.description + '\n');
}
}
}
WScript.Quit(rc);

function chk_fname(s) {
var invalid_chars = {'<':'<','>':'>','*':'*', '"':'”', '?':'?', '\\':'¥', '/':'/', '|':'|', ':':':' };
var reserved_strs = new Array( "CON", "AUX", "NUL", "PRN", "COM[0-4]", "LPT[0-3]" );
if (s.replace(/[. ]/g, "")=="") throw "E_spc_only";
for (var i in reserved_strs) {
if (s.replace(/\s*\..*$/,"").replace(new RegExp(reserved_strs[i],"i"),"")=="") throw "E_reserved";
}
return s.replace(/[|:/<>*"?\\]/g, function (w){return invalid_chars[w];});
}
596551:2011/05/31(火) 00:09:15.39 ID:mdi5oQEJ
>>586-589
またもお返事遅くなすいません、どうもありがとうございます。

当該機能の部分を本チャンのバッチにマージして、一週間ほど
経過を見てみたのですが、どうにかまともに機能するようになったようです。
追加で示していただいたset /pを使う方法も、ファイルを経由する
やり方であれば選択肢として有り得たのですが、できれば引数で渡したかったので
結果として元の方法に、両端””を対処する処理を加える形で落ち着きました。
>>587に挙げていただいたようなトラブルは現実的には発生しないと考えています。
それよりも、""の扱い方が変わった(両端だけの使い方でなくなった)ので
そのために全部手動で修正した作業が大変でした。

今時PowerShellが動かないOSに新機能を追加するケースはそう無さそうですし
DOSブート環境で使える処理を組みたいとかでない限り、バッチファイルを
掘り下げて習得していく意義は薄いのかもしれませんね。
それでも私なんかは、過去の資産に縛られて泥沼に嵌っていってますが・・・

それと、お教えいただいたサンプルコードは他の場所に転載したり
アーカイブさせていただいてもよろしいでしょうか?
597名無し~3.EXE:2011/05/31(火) 00:41:01.35 ID:wKPKEtoy
>>596
スクリプトコードは何処へなりとも自由に持っていってもらって結構ですよ。
ちなみにBATでの最終形>>588は両端の"も取るし受け渡されたどの文字列も大丈夫だと思う。
set /pをパラメタ渡しに変えるだけで良いだろう。(>>587の制限はできるが)
ちなみに、set /pだとパイプでパラメタ受け渡しができる。(>>595と同様にフィルタ動作をする)
例 echo "abc"|sample.bat や type data.txt|sample.bat

なお>>595はWSHの習作なんで行儀の悪いことになっていた。まあ使わないとは思うが一応注意を。
(使ったオブジェクトを開放し忘れてる)

なお、DOSでのBATは似て非なるものでここで使ったようなテクニックはほぼ全て使えないんだなあ。
598551:2011/06/01(水) 00:00:36.95 ID:AfdclPhS
>>597
重ね重ねありがとうございます。
パイプで渡す場合でも、引数と同じように>>587の制限が
生じてしまうとのことで、かえって割り切れました。
DOSへの応用範囲も狭いとなると、後はもう殆ど意地ですねw

コードは今すぐどこかに転載するといった算段ではありませんが
今後も活用させていただきます。ありがとうございました。
599名無し~3.EXE:2011/06/05(日) 15:50:03.34 ID:yhEiQsQi
上記の現在のディレクトリで CMD.EXE を開始しました。UNC はサポートされません。

UNCパスってなに? うんこ?
600名無し~3.EXE:2011/06/05(日) 16:10:22.82 ID:rXbO9qcf
ネットワークドライブにマウントしてから使っとけ
分かったかウンコ
601名無し~3.EXE:2011/06/05(日) 16:50:25.39 ID:yhEiQsQi
ありがとうんこ
602名無し~3.EXE:2011/06/05(日) 18:39:50.14 ID:Zerct+oF
おすすめはpushd
603名無し~3.EXE:2011/06/06(月) 01:16:02.61 ID:TdZrxGMI
pushdしまくったら爆発した
604名無し~3.EXE:2011/06/06(月) 01:52:29.27 ID:CZbmeqot
pushd と prompt $P$+$G 併用お勧め
605名無し~3.EXE:2011/06/08(水) 23:22:22.38 ID:yE/jf+js
文字コードにUTF-8が使われているテキストがあるとまともに動かないツールばかりだ
606名無し~3.EXE:2011/06/08(水) 23:27:30.85 ID:fZwxK7EP
>>605
君のIDに出てるようにシフトJIS使え
607名無し~3.EXE:2011/06/10(金) 17:15:48.46 ID:Wxy05tDn
>>605
君のIDに出てるようにJScript使え
608名無し~3.EXE:2011/07/13(水) 13:07:00.93 ID:0zcACgIP
数百KB〜数MBのファイルが何十GBと大量にあり、
なんとかこれを高速にコピーする方法は無いかと探しています。

今はxcopyを使っていますが、もっと良い方法は無いでしょうか?

609名無し~3.EXE:2011/07/13(水) 13:15:44.72 ID:Gf0fORp2
robocopy
610名無し~3.EXE:2011/07/13(水) 13:54:36.75 ID:CjocHXVI
611名無し~3.EXE:2011/07/14(木) 01:26:08.50 ID:MBHQqw7l
xcopyとかrobocopyの/Zスイッチの「再起動可能モード」ってなんなの?
↓見ると「再起動可能モード」の他に「バックアップモード」があるというのは分かったけど。
http://support.microsoft.com/kb/950790/ja

「バックアップモード」のほうはユーザー権利の「ファイルとディレクトリのバックアップ」や
「ファイルとディレクトリの復元」が有効になるってのはなんとなく分かったけど、
「再起動可能モード」のほうは、ネットワーク経由のコピーのときに有効なモードのようだけど
具体的には何なんだか全然よく分かんない。。。
612名無し~3.EXE:2011/08/11(木) 20:17:50.94 ID:z/fkZ+S/
このスレのえ〇いひとにお願いしたいんだけど
このバッチがどういう仕組みで動作してるのかアホにもわかるように解説してもらえんですか

ttp://scripting.cocolog-nifty.com/blog/2007/05/tee_0423.html

とりあえずパイプによる標準入出力について今さらググってみて
「バッチへのリダイレクションによるデータ入力は、バッチ内で最初に標準入力を使用するコマンドへの入力となる」
ttp://www.ne.jp/asahi/hishidama/home/tech/windows/bat.html#stdin
てことを初めて知って、どうやら9行目のmoreで受け取ってるっぽいなとなんとなく想像してるんだけど
それ以外全然理解できないボスケテー
613名無し~3.EXE:2011/08/13(土) 05:26:29.86 ID:Dj1yFRZf
えぐいひと?
614612:2011/08/13(土) 21:09:09.70 ID:CYdSlQAp
〇は特定の文字ではなく任意の1文字にマッチする(略

などと意味不明なことを言いつつごちゃごちゃやってるうちになんか見えてきたような気がする
書き込みアクセスしてるファイルに対して別プロセスで書き込もうとするとエラーになるけど
読み込みはできるって仕様になってるのを利用してるってことなのかな

しかしこの8・9行目の処理って初心者的に目から鱗すぎる
615名無し~3.EXE:2011/08/13(土) 22:01:36.02 ID:Dj1yFRZf
無理筋だな やめとけ
616名無し~3.EXE:2011/08/14(日) 16:24:20.80 ID:ihVTTdCj
バッチが遅いので調べたところ、コマンド全般が遅いことがわかりました。

C:\temp>prompt $t$s$p$g
13:37:57.40 C:\>for /l %A in (1,1,10)do find 2> nil
13:38:00.67 C:\>find 2>nil
13:38:01.01 C:\>find 2>nil
<略>
13:38:03.71 C:\>find 2>nil
13:38:04.04 C:\>
エラーになるだけのfindコマンドの実行1回あたり0.34秒ほどかかります。dirやdate /tなどは早いのですが
findやfcなどの外部コマンドが遅いようです。

マシンはLenovo X200sでXP SP3です。低スペックのR51eでは10倍ほど早いので、遅くなる要因があるものと思います
テスト時CPUの負荷などは最低限です。antivirusやfirewallを切ると1秒ほど改善しますが、大きな要因が他にあると思います。
原因を調べる方法はありますでしょうか?みなさんのPCではパフォーマンスはいかほどでしょうか?
617名無し~3.EXE:2011/08/14(日) 17:07:33.34 ID:a3JFdokN
PATHのsystem32より前にネットワークが入ってんじゃね
618名無し~3.EXE:2011/08/14(日) 17:27:56.09 ID:TBaxWSr7
>>617
パスにネットワークドライブはありませんし、フルパス指定でも同様でした。
619名無し~3.EXE:2011/08/15(月) 13:29:15.66 ID:IHWQfMAm
>>618
ゴミ見たいの残ってるとか?
net useでネットワーク共有確認した?
620名無し~3.EXE:2011/08/16(火) 00:03:15.86 ID:BPczii+w
一度、実行前に
set path=%systemroot%
を実行してから試してみて欲しい。
621名無し~3.EXE:2011/08/20(土) 14:42:15.09 ID:bFmEIStu
半角"%"を含んでいるファイル名の処理方法をお聞かせ下さい。
具体的には、”AABBCC100%.txt”と言うファイルをmoveやren
しようとしても上手く行きません。””でパス&ファイル名をくくっても同様です。


例:D:\test\aabbccdd 100%.txt を F:\DATA\08\へ移動したい

┌─────────────────────────────┐
│D:\test > move /Y "D:\test\aabbccdd 100%.txt" "F:\\DATA\08\"  
│                                         
│                                         
│D:\test > move /Y "D:\test\abcde 100\DATA\08\"        
│指定されたパスが見つかりません。                   
│                                        

%の箇所で可笑しくなっています。%付きのファイルが沢山有って
手作業で%(全角)に変更するのも現実的ではありませんし、
リネームソフトで変更より、まずは一旦コマンドプロンプトで解決できる
方法をお教え下さいませ。
622名無し~3.EXE:2011/08/20(土) 15:02:30.60 ID:eMW2GM3K
>>621
「指定されたパスが見つかりません」がtarget側にかかっているように見えるのは気のせい?

>move /Y "D:\test\aabbccdd 100%.txt" "F:\\DATA\08\"  

move /y "D:\test\aabbccdd 100%.txt" F:\DATA\08\ でもダメですか?

#手元の環境では二重引用符で括るだけで問題なく動作します。
623名無し~3.EXE:2011/08/20(土) 15:04:39.48 ID:SjWiWNqx
直接入力なら問題なかったような気がするけど・・・
バッチ内なら%%
624名無し~3.EXE:2011/08/20(土) 15:32:36.74 ID:bFmEIStu
>>622-623
有り難うございました。100%%で解決いたしました。

正規表現のメタキャラみたいな扱いなのでしょうか?
ほかの文字もあるのか、もう少し勉強し直してきます。

助かりました。
625622:2011/08/20(土) 15:38:08.00 ID:ZtdU7YRi
>>624
あぁ、バッチでの記述だったんだね(>>621では言及されてなかったけど)。
バッチだと%は変数のために予約されているんで、リテラルの%は%%で記述。
626名無し~3.EXE:2011/08/26(金) 09:59:56.85 ID:07hasJ0+
保守

※落ちたように見えるスレは、ブラウザなどで1回書き込めば
スレリストに復活、専ブラ等でも書き込み可能に。
627名無し~3.EXE:2011/09/19(月) 20:44:45.01 ID:2pOzoyXR
batファイルにドロップした分を連続で処理できるようになっています。
これをフォルダ内のファイルを一括で処理するように改造する方法を教えてください

@echo off

SETLOCAL
SET SPath="D:\ICEECC\ICEECC.exe"
SET SParam1=c
SET SParam2=/b1024
SET SParam3=/r2
SET SParam4=D:\ECC

:start
IF "%~1"=="" GOTO syoriend

:syori
%SPath% %SParam1% %SParam2% %SParam3% "%SParam4%\[ECC] %~n1%~x1.ecc" "%~n1%~x1"

:next
SHIFT
GOTO start

:syoriend
rem ↓pause不要なら削除
pause

ENDLOCAL
628名無し~3.EXE:2011/09/19(月) 21:54:35.30 ID:RwWOOKax
ドロップ
for /f %%I in (%*) do %SPath% %SParam1% %SParam2% %SParam3% "%SParam4%\[ECC] %%~nxI.ecc" "%%~nxI"
フォルダ
for /f %%I in (*.*) do %SPath% %SParam1% %SParam2% %SParam3% "%SParam4%\[ECC] %%~nxI.ecc" "%%~nxI"
629名無し~3.EXE:2011/09/19(月) 21:55:38.52 ID:RwWOOKax
すまん/fいらん
630名無し~3.EXE:2011/09/20(火) 18:04:21.52 ID:JCBuRgx6
>>628
ばっちり動きました。
すごい。
631名無し~3.EXE:2011/09/22(木) 15:08:44.24 ID:OBFRVs3h
schtasksのstで秒単位で指定しても無視されてしまいますが、こんなもの?
632名無し~3.EXE:2011/09/22(木) 15:34:21.37 ID:dDDr9Qq2
>>631
そんなもの。GUIのタスクスケジューラでも時分までしか設定できないんだから仕方ないだろ。
633名無し~3.EXE:2011/09/22(木) 18:43:08.33 ID:u20l0LSl
必要なら中で待てばよい
634名無し~3.EXE:2011/09/23(金) 15:45:10.63 ID:SWICmH79
schtasksで表示すると秒まで出るが、虫されるとは、指定の仕方が悪いんじゃね
635名無し~3.EXE:2011/11/09(水) 18:52:01.56 ID:y4E29ing
コマンドプロンプトのプロパティのレイアウトタグでバッファサイズと画面サイズを指定できますが、
cmd.exeの起動オプションかバッチファイル内で同等の指定をする方法はあるのでしょうか?

ご存知の方がいましたら教えて欲しいです。よろしくお願いします。
636名無し~3.EXE:2011/11/09(水) 19:07:40.97 ID:OD6GvI9M
mode/?
637635:2011/11/09(水) 20:40:15.34 ID:y4E29ing
>>636
ありがとうございます。助かりました。
638名無し~3.EXE:2011/11/12(土) 08:50:42.69 ID:1vH/LxN0
コマンドプロンプトでtelnetを開始して、
open ホスト名 80
って打っても、2秒ぐらいした後にバグって入力のバーがコマンドプロンプトの左上(最初の位置)に戻るんですが、
これはバグですか?
7でやっても別のPCのXPでやってもこうなりました。

そのままGETコマンドとか打っても受け付けてはくれるんですが、見にくくてしかたありません。
639名無し~3.EXE:2011/11/12(土) 13:02:43.31 ID:6LWtYEOA
>>638
telnetの仕様です
640名無し~3.EXE:2011/11/18(金) 20:51:02.21 ID:pxVyOoVa
GNU grep 使っていたが、日本語はうまくいかないこともあるのを発見
こまったアル
2.5.1
641名無し~3.EXE:2011/11/18(金) 21:12:14.79 ID:Dyiu+uA+
642名無し~3.EXE:2011/11/18(金) 23:25:45.26 ID:CC6V9VYv
>>641
ありがとうございます。

findstr というツ−ルもあるようですが、たしかどっかに問題があった。
643名無し~3.EXE:2011/11/19(土) 00:05:46.04 ID:zaMlMwTR
findstrは標準で入ってるやつだよ
644名無し~3.EXE:2011/11/21(月) 15:00:00.60 ID:ngKnsBjW
文字列を貼り付けるときにマウスの右クリックでメニューを表示して貼り付けてますが
マウスを使わずにキーボードで貼り付けるショートカットってありませんか?
645名無し~3.EXE:2011/11/21(月) 15:12:34.21 ID:lBNK4PnM
alt+space e p
646名無し~3.EXE:2011/11/23(水) 05:35:55.96 ID:nwtiGPYP
電波テロ装置の戦争(始)
魂は幾何学、コピー出来る公安はサリンオウム信者の子供を40歳まで社会から隔離している
オウム信者が地方で現在も潜伏している
それは新興宗教を配下とする公安(慶應卒T)の仕事だ発案で盗聴器を開発したら霊魂が寄って呼ぶ来た
<電波憑依>
スピリチャル全否定なら江原三輪氏、高橋佳子大川隆法氏は、幻聴で強制入院矛盾する日本宗教と精神科
<コードレス盗聴>
2004既に国民20%被害250〜700台数中国工作員3〜7000万円2005ソウルコピー2010ソウルイン医者アカギ絡む<盗聴証拠>
今年5月に日本の警視庁防課は被害者SDカード15分を保持した有る国民に出せ!!<創価幹部>
キタオカ1962年東北生は二十代で2人の女性をレイプ殺害して入信した創価本尊はこれだけで潰せる<<<韓国工作員鸛<<<創価公明党 <テロ装置>>東芝部品)>>ヤクザ<宗教<同和<<公安<<魂複<<官憲>日本終Googl検索
647名無し~3.EXE:2011/11/24(木) 02:17:34.51 ID:2V91NEL2
>>644
キーボードじゃなくてスマンが
プロパティのオプションタブで簡易挿入モードをONにすると
マウスの右クリックだけで貼り付けられるよ。
648名無し~3.EXE:2011/11/24(木) 02:19:58.34 ID:2V91NEL2
↑「簡易編集モード」の間違い
649名無し~3.EXE:2011/11/25(金) 00:49:12.77 ID:ujh3KFvf
隠しフォルダ内のファイルをコマンドでコピーするときってどうやるの?
650名無し~3.EXE:2011/11/25(金) 01:12:14.11 ID:mEbPOXRQ
おんなじだけど
651名無し~3.EXE:2011/11/25(金) 02:10:16.55 ID:ujh3KFvf
xcopy? アクセスできなくない?/H とか? 
Win7のAPPDATA内のSleipnirお気に入りを別の場所にコピーするバッチ作りたいんだけど…
xcopy で/Hってやってもダメなんだけど必要なオプションとかある?
652名無し~3.EXE:2011/11/25(金) 02:40:27.85 ID:mEbPOXRQ
copyでできるが?
653名無し~3.EXE:2011/11/25(金) 02:42:45.10 ID:mEbPOXRQ
ほら
>md aaa
>echo >aaa\aaaaa
>attrib +h aaa
>copy aaa\aaaaa
1 個のファイルをコピーしました。
654名無し~3.EXE:2011/11/25(金) 02:50:59.27 ID:iDpkqVLx
俺は使ってないので、Sleipnirお気に入りでググってみたところ

C:\Users\<ユーザー名>\AppData\Roaming\Fenrir & Co\Sleipnir
の下に
Favorite.ffv(お気に入り)、
FavoriteGroup.ffg(お気に入りグループ)
の2つのファイルがあるそうだ。
xcopy使うまでもなくただのcopyで良いと思うけど、
問題ありそうなのはフォルダ指定じゃないのか?
(半角空白があるけど""で括ってないとか)
一度エラーになったbatをさらしてみたら?
655649:2011/11/27(日) 00:22:34.36 ID:1krBEMlR
>653,654
ありがとう、出来たよ!
原因はパスだった。
隠しフォルダにアクセス出来ないんじゃなくてパスが間違ってた。
Sleipnir2.* とSleipnir3はAPPDATA内のパスが違うみたい。
656名無し~3.EXE:2011/12/20(火) 20:10:37.38 ID:kZtmw/od
Linuxの話だけど、最近これやってみて激しく感動したんだけど

DSAS開発者の部屋:シェルスクリプトで標準入力を加工する際の注意点
ttp://dsas.blog.klab.org/archives/51060184.html

これと同じことWindowsで実現する方法ってないかなぁ
657名無し~3.EXE:2011/12/21(水) 15:09:10.69 ID:LATDZEHO
具体的に要件を言えよ
658名無し~3.EXE:2012/01/10(火) 09:22:57.61 ID:IzsMUOFe
MS−DOSとは一体何だったのか
http://awabi.2ch.net/test/read.cgi/poverty/1326153783/l50
659名無し~3.EXE:2012/01/20(金) 20:09:35.34 ID:hAB3eePX
教えてください。
フォルダ内のすべてのファイルのファイル名を
頭三文字を削除したファイル名にリネームしたいのですがどのようにしたらよいでしょうか?


リネーム前
01_ほげ.txt
02_hoge.bmp
リネーム後
ほげ.txt
hoge.bmp
660名無し~3.EXE:2012/01/20(金) 20:32:11.97 ID:UaxaTE60
for %%i in (*) do (set "x=%%i") & call ren "%%i" "%%x:~3%%"
661名無し~3.EXE:2012/01/20(金) 20:55:17.28 ID:hAB3eePX
>>660
ありがとうございます。
目的の作業が出来ました。

ただバッチファイルやリネームしたくないファイルもリネームされてしまうので
ファイル名の一文字目が数字の場合のみリネームするように改造できますか?
662名無し~3.EXE:2012/01/20(金) 21:20:55.24 ID:UaxaTE60
for %%i in (0* 1* 2* 3* 4* 5* 6* 7* 8* 9*) do (set "x=%%i") & call ren "%%i" "%%x:~3%%"
for %%i in (??_*) do (set "x=%%i") & call ren "%%i" "%%x:~3%%"
663名無し~3.EXE:2012/01/21(土) 19:02:59.88 ID:BeeQdxoC
>>662
ありがとうございました
664名無し~3.EXE:2012/01/24(火) 03:52:12.29 ID:QJ/7ug6o
if "%OS%" == "Windows_NT" (
echo This system is
echo running on NT technology.
) else (
echo This system is NOT
echo running on NT technology.
)

上記の記述だと問題はないけれど,
環境変数中に「()」が含まれる場合,エラーになるのだけれど回避する方法はあるのかいな
665名無し~3.EXE:2012/01/24(火) 14:10:54.54 ID:dHRJwv6C
エラーにならんぞ
666名無し~3.EXE:2012/01/24(火) 15:35:45.64 ID:QJ/7ug6o
間違えた。
「if...()」で囲まれるブロック中の環境変数に()が含まれる場合だった。
667名無し~3.EXE:2012/01/24(火) 16:16:54.11 ID:4k51VPeE
^^付けてあげるとか駄目かな。比較部分も書き換えなきゃいけなくなるけど。
それじゃあ困るんだよ !って言われても僕には分かりません

set string=^^(ab^^)c
echo %string%
if "%~1" == "" (
if "%string%" == "^(ab^)c" echo equal
echo %string%
echo .
)
668名無し~3.EXE:2012/01/24(火) 16:48:53.45 ID:DUAeQj0m
")"でエスケープ
または
!遅延展開!
669名無し~3.EXE:2012/01/25(水) 01:24:48.79 ID:QAFBVQGR
ラベルをコールするとか
670名無し~3.EXE:2012/01/25(水) 02:45:35.27 ID:FwrcBzZe
ラブコール
671名無し~3.EXE:2012/01/28(土) 14:19:04.24 ID:PD0QOKOk
TWEETコマンドを使ってツイートしてるのですが、
ツイートの改行方法が分かりません。

winのコマンドで文字列を改行するのはどうしたらいいんでしょうか?
672名無し~3.EXE:2012/01/28(土) 14:45:58.28 ID:Q0fjclzs
インターネットテンポラリフォルダにあるクッキー以外のファイルを一括で
削除したいのですがバッチファイルの記述など教えていただけませんでしょうか?

ゴミ箱にいれずに直接削除できたら便利なのですが
batファイルをファイル名を指定して実行から起動しようと思っています

ccleanerなどで削除するのをもっと手軽に出来たらなと思いまして
よろしくお願いします。
673名無し~3.EXE:2012/01/28(土) 17:08:29.98 ID:rYMqbgzQ
ClearMyTracksByProcess
674名無し~3.EXE:2012/01/28(土) 17:29:15.45 ID:Q0fjclzs
>>673 おぉ 見事に解決しました ありがとうございました
675名無し~3.EXE:2012/01/28(土) 23:07:36.02 ID:Q0fjclzs
>>673 解決はしたんですが 作成したリンクファイルのフルパスを
ファイル名を指定して実行する事が出来ない・・
.likだからだろうけど ちょっとだけ残念
676名無し~3.EXE:2012/01/28(土) 23:12:31.27 ID:rYMqbgzQ
.lnkを付ければええだろ
677名無し~3.EXE:2012/01/28(土) 23:22:07.68 ID:Q0fjclzs
>>676うーん もしかしてショートカットはデスクトップからうつしたらだめで
ファイル名変更もだめなのかな

リンクつけるとファイルノプロパティが開いてしまうんです。
あれ、もしかしてキャッシュのパスかえたからおかしくなったのかも・・
ちょっと試行錯誤してきます
678名無し~3.EXE:2012/01/29(日) 22:31:12.30 ID:TFEJcwTs
679名無し~3.EXE:2012/02/21(火) 13:09:31.60 ID:0LZ9ETD9
すいません。誘導されて来ました。
WindowsXP質問スレ 212ページ目
http://toro.2ch.net/test/read.cgi/win/1323269626/548

548 名前:名無し~3.EXE[sage] 投稿日:2012/02/21(火) 12:11:40.50 ID:0LZ9ETD9
dosのバッチファイルで「あるコマンド実行後0.5秒休止」をループで繰り返したいときには
どうバッチファイルを記述すればよいのでしょうか?ループの中でコマンドを二回する方法がわかりません。
また休止コマンドは「ping localhost」を使えと言われたのですが・・

FOR %%F IN (*.拡張子) DO コマンド 0.5秒休止 %%F
680名無し~3.EXE:2012/02/21(火) 13:59:19.42 ID:6vXLOlLc
1秒以下・1秒以下単位のスリープは不可能。専用ツールでもあれば別。
681名無し~3.EXE:2012/02/21(火) 14:37:30.15 ID:KhHOee+Y
Usage: sleep time-to-sleep-in-seconds
sleep [-m] time-to-sleep-in-milliseconds
682名無し~3.EXE:2012/02/21(火) 14:40:29.46 ID:KhHOee+Y
使用法: ping [-t] [-a] [-n 要求数] [-l サイズ] [-f] [-i TTL] [-v TOS]
[-r ホップ数] [-s ホップ数] [[-j ホスト一覧] | [-k ホスト一覧]]
[-w タイムアウト] [-R] [-S ソースアドレス] [-4] [-6] ターゲット名

オプション:
-n 要求数 送信するエコー要求の数です。
-w タイムアウト
応答を待つタイムアウトの時間 (ミリ秒) です。
683名無し~3.EXE:2012/02/21(火) 15:15:55.79 ID:CXufj1to
203.0.113.0とか使うのが適当?
684名無し~3.EXE:2012/02/25(土) 23:36:19.58 ID:yy3S+6gu
>>679
>>680
>>681
Batch file SLEEP Command - Windows XP and DOS
http://malektips.com/xp_dos_0002.html
Windows Server 2003 ツール
http://technet.microsoft.com/ja-jp/windowsserver/bb405955.aspx

物が単純なだけに亜種がやたらとあるから適当に検索して片っ端から試すというのもアリかもw
685名無し~3.EXE:2012/02/27(月) 01:27:01.87 ID:LCTL9xSY
slmgr.vbs -dlvってなんすか?
686名無し~3.EXE:2012/02/27(月) 01:31:07.14 ID:QV8Wxsa0
メモ帳で開いてみれば分かるだろw
687名無し~3.EXE:2012/02/27(月) 01:39:12.05 ID:j7Geg3R6
>>685
ライセンス関係だからわかってても答えない
688名無し~3.EXE:2012/03/15(木) 00:56:50.19 ID:TshG/fxv
保守
689名無し~3.EXE:2012/04/14(土) 20:29:56.42 ID:di3PQnSS
バッチファイルにドラッグ&ドロップで、ファイル名にスペースのある物を使いたいのですが
"でくくっても正常に表示されないのですがどうしたらいいんでしょうか?

ドラッグ&ドロップしたファイル名 「a #01.gl」

echo %1
echo "%1"

pause


C:\>echo C:\a
C:\a

C:\>echo "C:\a"
"C:\a"

C:\>pause
690名無し~3.EXE:2012/04/14(土) 20:32:04.23 ID:zSF5e4bH
echo %*
echo "%*"
691名無し~3.EXE:2012/04/14(土) 20:53:13.51 ID:di3PQnSS
>>690
ありがとうございます。
スペースが、あったり、なかったりする、複数ファイルを扱うことはできないんでしょうか?
692名無し~3.EXE:2012/04/14(土) 21:14:54.00 ID:sMJPc4ze
>>691
D&Dをエクスプローラ以外のファイラーでやってない?

エクスプローラではスペースあっても""でくくられているので %1 で問題ないのだが
ファイラーによってはくくられずにスペースで分割されてしまう。
693名無し~3.EXE:2012/04/14(土) 21:18:50.46 ID:fOvpJLhU
>>691
全角スペースじゃなく半角スペースならいけるはず。
コマンドプロンプトだけじゃなく他のプログラムでも問題を起こす場合があるから
ファイル名の全角スペースはできるだけ避けた方が無難かと。
694名無し~3.EXE:2012/04/14(土) 21:43:35.18 ID:di3PQnSS
%*だと、%~nx1とかも使えないんですね・・

>>692
windows7で普通にドラッグ&ドロップしているだけなんですが・・・
>>692
他のソフト(TvRock)で自動に作られてしまうのでどうしようも・・・
自動でスペース消したりする方法とかありますかね?
695名無し~3.EXE:2012/04/14(土) 22:19:03.34 ID:fOvpJLhU
>>694
リネームツールを使えば簡単に変更できるはずだけど
このスレ的にやるなら↓こんなん?
正直あんまり自信ないから
もし使うなら空のテキストファイルあたりに同じファイル名を付けて
ちゃんとリネームされるかどうか確認してからの方がいいと思う。


::実行ディレクトリ内にあるファイル名の全角スペースを半角スペースに置換する

::全角スペースを含むファイルをリネーム処理に送る
for /f "delims=" %%a in ('dir /a:-d /b "* *"') do call :sub "%%a"

::終了処理へジャンプ
goto :eof

::リネーム処理
:sub
set f=%1
ren %f% %f: = %

::終了処理
:eof
696名無し~3.EXE:2012/04/14(土) 23:53:29.20 ID:di3PQnSS
>>695
いけそうです。ありがとうございました。
697名無し~3.EXE:2012/04/14(土) 23:53:31.02 ID:zSF5e4bH
なことせんでも半角スペースのあるフォルダに置いてそこからD&Dすればオッケーよ
698名無し~3.EXE:2012/04/15(日) 01:15:17.41 ID:JtiIA/U/
引数って、全角スペースでも区切られるのかぁ
長年コマンドプロンプト使ってるつもりだったけどぜんぜん気付いてなかった
勉強になった
699名無し~3.EXE:2012/04/15(日) 01:18:57.23 ID:WF4W96cn
仕様じゃないよ単なるバグよ直らんけど
700名無し~3.EXE:2012/04/17(火) 00:54:04.23 ID:FGe60Pe5
いったん半角スペースのあるフォルダにおいて、でもいいので
ファイル名の全角スペースと半角スペースをアンダーバーに変えたいのですが、
バッチファイルにD&Dだけで、
しているのですが、以下を2回かけるしかないのでしょうか?
2つの条件でrenや、renした後のものを確認できますか?
(2つとも可能なのでしたらやり方も教えていただけるとありがたいです。)

for %%a in (%*) do call :sub %%a

goto :eof

:sub
set f=%~nx1
echo %f%
ren "%f%" "%f: =_%"
ren "%f%" "%f: =_%"

:eof

701名無し~3.EXE:2012/04/17(火) 05:10:55.09 ID:Gava50qZ
そうだね
702名無し~3.EXE:2012/04/17(火) 05:21:09.19 ID:rxVaCTrW
全部置換した名前を生成後、最後にrenじゃダメなのか?

一応、半角スペースのフォルダに置かなくても以下のようにすれば大丈夫じゃないかな?
@echo off
set pname=%*
if not defined pname echo ファイル名を指定してください&pause&&goto :eof
set pname="%pname:"=%"
call :sub %pname%
echo 置換:^<%r%^> %pname% ===^> %fname%
rem if %r% equ ON if exist %dir%%fname% echo 既存ファイルがあって置換できない
ren %pname% %fname%
pause
goto :eof

:sub
set dir="%~dp1"
set f="%~nx1"
set fname=%f: =_%
set fname=%fname: =_%
if %f% neq %fname% (set r=ON) else (set r=OFF)
goto :eof
703名無し~3.EXE:2012/04/17(火) 10:36:12.10 ID:3+X2uaPe
よくあることだが、半角スペースがあるとわかりきってるのに
""でくくらないとボロボロだろそれ
704名無し~3.EXE:2012/04/17(火) 16:05:55.18 ID:BY2k4WaO
>>703
そもそもの原因は「全角スペースに対して自動的に""が付加されない」ことにある。
変数をそのままくくっちゃうと、全角スペースだけの場合は正常に動くけど
半角スペースを含んでいる場合は「""C:\ho ge\ho ge.avi""」となって失敗する。
>>702では一旦「"」を置換処理で除去してからくくってるみたいだから
どのケースでも問題なく動くと思う。
705名無し~3.EXE:2012/04/17(火) 17:29:35.38 ID:rxVaCTrW
>>703
一応簡単にはテストしてアップしたわけだからボロボロってほどでも無いと思いたいが、
ダメなケースってどういう場合だろ?
706名無し~3.EXE:2012/04/17(火) 18:01:16.92 ID:FGe60Pe5
>>702
ありがとうございます。

どう置換しているのかあまりよくわかってないですが、複数ファイルをまとめてD&Dするなら、
フォルダ名に半角スペース入れて、こんな感じでしょうか?

@echo off

for %%a in (%*) do call :suba %%a

:suba
set pname=%*
if not defined pname echo ファイル名を指定してください&pause&&goto :eof
set pname="%pname:"=%"
call :sub %pname%
echo 置換:^<%r%^> %pname% ===^> %fname%
rem if %r% equ ON if exist %dir%%fname% echo 既存ファイルがあって置換できない
ren %pname% %fname%
pause
goto :eof

:sub
set dir="%~dp1"
set f="%~nx1"
set fname=%f: =_%
set fname=%fname: =_%
if %f% neq %fname% (set r=ON) else (set r=OFF)
goto :eof
707名無し~3.EXE:2012/04/17(火) 20:13:43.12 ID:BY2k4WaO
>>706
「%*」って全ての引数を表示するって意味だから、複数ファイルをD&Dすると
それら全てが1つのファイル扱いになって失敗すると思う。

ていうか、「call :suba %%a」じゃ:subaに渡す時にスペースのところで分割される。
708名無し~3.EXE:2012/04/17(火) 22:14:25.59 ID:rxVaCTrW
半角スペースのあるフォルダでないとダメって言ってる理由がわかった。
BAT環境にファイル名が正常に渡ってこない場合があることを忘れてたよ。
俺も>>586(以降の一連のレス)で忠告したことがあったのに、自分自身がそれに引っかかっちゃった。orz
(例 a b&c.txtとか)

>>706
半角スペースを含むフォルダを指定するとして

for %%a in (%*) do call :suba %%a

for /r %1 %%a in (*) do call :suba %%a
pause
goto :eof
に変えて、下にあるpauseを取れば一応は動作と思うが、半角スペースを含む場合なら
無駄なことをしてるので自分で考えて改造してよ。
さらにパラメタがフォルダかどうかチェックすればもっといい。
(ルートでない場合、"c:\hoge"なら"c:\hoge\."が存在するかどうか)
709名無し~3.EXE:2012/04/17(火) 23:00:24.68 ID:rxVaCTrW
フォルダ名じゃなくて複数ファイルのD&Dなら、次のような感じで。
:loop
for %%a in (%1) do call :suba %%a
shift
if exist %1 goto loop
710名無し~3.EXE:2012/04/17(火) 23:04:17.20 ID:rxVaCTrW
いやfor文の変わりに単に、call :suba %1
でいいや。
711名無し~3.EXE:2012/04/17(火) 23:32:06.75 ID:Gava50qZ
なにやってんだかあほか
712名無し~3.EXE:2012/04/19(木) 22:06:34.90 ID:7S6I67D2
コマンドラインで漢字交じりの文をローマ字変換したいのだけど
kakasiを使ってみたら「ん」の後に母音が来ると「ん」が「n'」に変換されてしまうので困っている。
元文が「'かんおん'」というような''で囲まれた文なので中身に「'」が入るのは困る。

平仮名だけなら簡単に事前置換等で対応できそうだけど、漢字の読みがそうなる時がある…
総計10GB位のテキストなので手作業なんて非現実的なにかいい方法はないだろうか?
713名無し~3.EXE:2012/04/19(木) 22:13:34.44 ID:4MPi1VgC
>>712
元文の「'」を絶対に一致しない文字に置き換えるのが無難のような気がする。
714名無し~3.EXE:2012/04/20(金) 12:49:16.86 ID:gxdpXMXl
やっぱりそれしかないか…

ちょっと誤爆が怖いけど。
715名無し~3.EXE:2012/04/28(土) 21:20:23.05 ID:krL2uB3+
お前らがアスペっていうのは昔から聞いてたけどほんとなんだな


この流れはどうみても「ラーメンは何味が好き?」だろ
こんなこともわからないとかやっぱりアスペだなお前ら
716名無し~3.EXE:2012/04/28(土) 21:59:29.20 ID:BWKqevXj
誤爆か遅レスか知らんがこれほど天唾乙と言えるレスもないな
717名無し~3.EXE:2012/05/02(水) 03:47:39.01 ID:wQplHjdm
「a+b.txt」というファイル名をバッチファイルで記述するときはどうやるのでしょうか?
+をエスケープ文字で回避すると思うのですが。。

copy C:\a+b.txt C:\

718名無し~3.EXE:2012/05/02(水) 03:52:22.88 ID:wQplHjdm
> copy C:\a+b.txt C:\
ディレクトリーを変えないといけなかった。  copy C:\a+b.txt C:\d
コピーじゃなくてファイル移動だと      move C:\a+b.txt C:\d
でうまくいくのですが。
719名無し~3.EXE:2012/05/02(水) 03:59:09.31 ID:wQplHjdm
copy C:\"a+b.txt" C:\d
で出来ました。
720名無し~3.EXE:2012/05/02(水) 12:32:25.76 ID:wxWeUOsq
cmd/?
引用符が必要な特別な文字は次のとおりです:
<スペース>
&()[]{}^=;!'+,`~
721名無し~3.EXE:2012/05/13(日) 17:19:57.01 ID:gmM8szhr
コマンドプロンプトについての質問なんですが、日本語入力をON,OFFするコマンドはありませんか?
バッチファイルに書き込んで使いたいと思っています。
722名無し~3.EXE:2012/05/13(日) 19:41:47.52 ID:pSaSucf4
createobject("wscript.shell").sendkeys "%{kanji}"
723名無し~3.EXE:2012/05/13(日) 22:11:56.36 ID:gmM8szhr
>>722
.NETの関数でしょうか。
VBSファイルを作ってバッチファイルから呼び出してみましたがうまくいきませんでした。
どうやって使えばいいのですか?
724名無し~3.EXE:2012/05/14(月) 18:50:06.18 ID:yob5yN8B
VBAのsendkeysかWin32APIのkeybd_eventを使うんだな
725名無し~3.EXE:2012/05/15(火) 10:11:19.08 ID:4YpaanVg
WindowsXP Homeを使っています
ネットワークドライブを使うとき、起動ごとにパスワードを聞かれます
netコマンドでどうにかなりませんか?
726名無し~3.EXE:2012/05/15(火) 11:19:37.48 ID:1F1dODdR
727名無し~3.EXE:2012/05/27(日) 11:15:46.97 ID:Zi/Qv7V4
test.txtが

aaa
bbb
ccc

という内容の時に

cmd /v:on
for /F %i in ('type test.txt') do @set s=!s!%i
echo %s%

とやると

!s!aaabbbccc

と改行が削除された状態で表示されますが、最初の!s!を入れないようにすることは出来ないのでしょうか?
728名無し~3.EXE:2012/05/27(日) 11:45:01.45 ID:b9LKc8gV
for /F %i in ('type test.txt') do @if defined s (set s=!s!%i) else (set s=%i)
729名無し~3.EXE:2012/05/27(日) 12:39:19.38 ID:Zi/Qv7V4
>>728
出来ました。ありがとございます!
しかしこのような即レスをされる方がゴロゴロいるなんて、ここは梁山泊みたいなスレですね・・・
730名無し~3.EXE:2012/05/27(日) 15:28:02.07 ID:MxmPa/21
set s=s
for /F %i in ('type test.txt') do @set s=!s!%i
set s=!s:~1!
731名無し~3.EXE:2012/05/27(日) 23:06:41.74 ID:kVOsxa3X
「梁山泊」は反社会的なゴロツキのアジトみたいな意味に受け取られる
理由は反社会的なゴロツキが自分達のアジトを「梁山泊」と命名したがる傾向にあるからだ
誉める時の喩えにはあまり使わない方がいい
732名無し~3.EXE:2012/05/30(水) 02:24:38.12 ID:dp2m2SV7
>>731

そうともいえないような気が。つ水滸伝
733名無し~3.EXE:2012/05/30(水) 11:11:48.31 ID:hY90iCOi
触るなよ
734名無し~3.EXE:2012/05/31(木) 07:24:36.12 ID:GKrgWqBq
環境変数の遅延展開を使いこなす山賊のアジトはここですか?
735名無し~3.EXE:2012/06/01(金) 20:38:18.63 ID:ucWPdBkw
ファイル作成の仕方について教えてください。

@ipconfig > tmp.txt
Atmp.txtを開き、一行目Windows IP Configurationをコピー
Btmp.txtをWindows IP Configuration.txtに変更

この例としてipconfigを挙げました
現状ABを手動でやっているのですが、@〜Bの流れをコマンドで実行したいです
736名無し~3.EXE:2012/06/01(金) 21:09:07.19 ID:UDzrrlMD
コマンドの出力結果の1行目の文字列をファイル名にしたいってこと?
737名無し~3.EXE:2012/06/01(金) 21:23:46.81 ID:ucWPdBkw
>>736 そう 言葉足らずすまん
738名無し~3.EXE:2012/06/01(金) 21:34:31.84 ID:UDzrrlMD
ipconfig>tmp.txt
for /f "delims=" %i in (tmp.txt) do if exist tmp.txt rename tmp.txt "%i.txt"

・・・これだと厳密には、コマンドの出力結果の1行目というより、ファイル名として使える文字列の行のうち、最初の行の文字列にリネームされるけど。
739名無し~3.EXE:2012/06/01(金) 21:51:25.22 ID:UDzrrlMD
あと、>>738だと、文字列の先頭3文字以内に「?」があると、「?」が元ファイル名「tmp」のどれか1文字に置換されちゃうかも。
740名無し~3.EXE:2012/06/01(金) 22:41:04.81 ID:YUcQN8Lb
>>738
XPだとエラーになってしまう
ipconfigの出力が変だからなので普通のファイルならいけるだろうけど
741名無し~3.EXE:2012/06/01(金) 22:49:37.12 ID:ucWPdBkw
>>738
できましたー ありがとうございmす

300行ぐらいあるtxtなので全行にわたって処理が流れますが、運用上問題ありません

また、一行目に日本語が入ってるので、出力したファイルが文字化けしてしまいますが、
対策もしくは運用回避できそう
742名無し~3.EXE:2012/06/01(金) 22:57:18.26 ID:ucWPdBkw
>>740ごめんなさい
ipconfigは一行目が空白?半角スペース?で2行目にWindows〜でした
例として適さなかったですね
743名無し~3.EXE:2012/06/01(金) 23:01:59.01 ID:YUcQN8Lb
いや、一行につき、改行コードが0Aのと0D0Aのと二つ付いてそれでダメなんだけど
744名無し~3.EXE:2012/06/01(金) 23:03:34.46 ID:YUcQN8Lb
0Dと0D0Aの二つの訂正
745名無し~3.EXE:2012/06/01(金) 23:36:15.95 ID:UDzrrlMD
>>738は見ての通り、すごく乱暴なロジックだから、使うとき気をつけてね。

もし1行目の文字列.txtってファイル名が既存だったら2行目の文字列のファイル名になるし、
ファイルの中身によっては>>739とか>>740さんみたいに意図しない結果になるかも。
何千行、何万行あっても延々とif exist 〜ってやり続けるからCPU食いまくったりするかもしれないし、
全行の処理が終わる前に、たまたま誰か別のプログラムがtmp.txtってファイルを作って
それも何か変な名前にリネームしちゃったりすることもあるかも。
746名無し~3.EXE:2012/06/02(土) 09:50:03.21 ID:0AyYZJnd
1行目だけで良いなら

set /p nanika=<tmp.txt

も場合によっては便利では。
747729:2012/06/02(土) 17:15:21.15 ID:s4AwXJTk
>>731
サンデーのケンイチって漫画の読みすぎです。すみませんw

ところでまた質問があるのですが・・・
例えば「テンプレ.txt」の内容が

商品コード:@ID 商品名:@商品名
内容量:@容量 ml 小売価格:@価格 円

で、「10001.csv」の内容が

@ID,10001
@商品名,スコッチ
@容量,700
@価格,1200

である時に「テンプレ.txt」の内容を

商品コード:10001 商品名:スコッチ
内容量:700 ml 小売価格:1200 円

のように書き換えて「10001.txt」に出力したいのですが、どのように記述したらよいでしょうか?
あまりにも複雑で検討もつきません・・・。WSHとかでも大丈夫です。
748名無し~3.EXE:2012/06/02(土) 17:47:45.16 ID:GYAfnnxQ
素直に他の言語使え。
749名無し~3.EXE:2012/06/02(土) 23:26:55.07 ID:8eYCkWb2
>>747
csvの内容が4つまでで簡単なエラーチェックしかしてないが、以下を参考に
@echo off
set target_dir=%~dp0

set c=0
for /f "tokens=1,2 delims=," %%i in (1001.csv) do (
call :sub1 %%i %%j
)
call :create_rep_bat

type nul>"%target_dir%%data0%.txt" 2>nul
if not exist "%target_dir%%data0%.txt" goto :error
for /f "delims=" %%i in (テンプレ.txt) do (
call rep.bat %%i
)
goto :end

:sub1
set name%c%=%1
set data%c%=%2
set /a c += 1
goto :eof
750名無し~3.EXE:2012/06/02(土) 23:27:18.76 ID:8eYCkWb2
:create_rep_bat
if %c%==0 goto :eof
echo @echo off> rep.bat
echo set line=%%*>> rep.bat
echo set line0=%%line:%name0%=%data0%%%>> rep.bat
if %c%==1 goto :eof
echo set line0=%%line0:%name1%=%data1%%%>> rep.bat
if %c%==2 goto :eof
echo set line0=%%line0:%name2%=%data2%%%>> rep.bat
if %c%==3 goto :eof
echo set line0=%%line0:%name3%=%data3%%%>> rep.bat
if %c% gtr 4 goto :error
echo if "%%line0%%" neq "%%line%%" echo %%line0%%^>^> %target_dir%%data0%.txt>> rep.bat
goto :eof

:error
echo エラーだよ [count=%c% filename=%data0%.txt]
:end
del rep.bat>>nul
goto :eof
751名無し~3.EXE:2012/06/15(金) 23:27:35.99 ID:CSUU/bWD
>>746ありがとうございます
set /p nanika=<tmp.txt
rename tmp.txt %nanika%.txt
これで>>738さんの方法と同様かつシンプルに動作しました。

またアドバイスいただきたくてきたのですが、
一行目に日本語文字があり上記のコマンドでファイル名をセットすると文字化けすることが
解決できずにいるのですが何か方法はありますか
752名無し~3.EXE:2012/06/16(土) 15:31:10.29 ID:8ul3taaL
「c:\data」というフォルダを丸ごとバックアップするために

xcopy c:\data c:\data_bak\ /e /d /y

というコマンドを定期的に実行しているのですが、
このコマンドだと2回目以降のバックアップは差分バックアップで高速なのはいいのですが、
「c:\data」から削除されたファイルが「c:\data_bak」に残ってしまいます。
2つのフォルダの内容を同一にする方法はないでしょうか?
753752:2012/06/16(土) 15:58:41.91 ID:8ul3taaL
robocopyで出来ました。お騒がせしました。
754名無し~3.EXE:2012/06/19(火) 21:58:40.28 ID:hGKihNyx
テキストファイルの内容を書き換えて1行1レコードにしたいのですが、例えば

[Name]あああ
[Age]10
[Tel]1111-1111
[Name]いいい
[Age]20
[Tel]2222-2222
[Name]ううう
[Age]30
[Tel]3333-3333

という内容のテキストファイル(Kaiin.txt)を

[Name]あああ [Age]10 [Tel]1111-1111
[Name]いいい [Age]20 [Tel]2222-2222
[Name]ううう [Age]30 [Tel]3333-3333

のように1行1レコードに書き換えることはできるのでしょうか?
ちなみにレコードは[Name]から始まることは確実なのですが、
情報は3項目とは限らず、あるレコードには[E-Mail]という4つ目の項目があったりします。
「delims=[Name]」とか色々やってみたのですが、改行の扱い方がよくわかりませんでした・・・
755名無し~3.EXE:2012/06/19(火) 22:29:39.46 ID:h3brGujL
type hoge.txt|tr -d \r|tr -d \n|sed "s/\[Name\]/\n[Name]/g"
756名無し~3.EXE:2012/06/19(火) 23:22:20.00 ID:+q6zg+OS
>>754
setlocal ENABLEDELAYEDEXPANSION
del Kaiin_fix.txt
for /f "delims==" %%A in (Kaiin.txt) do (
set t=%%A
if "!t:~0,6!" == "[Name]" (
if not "!r!" == "" (
echo !r!>>Kaiin_fix.txt
)
set r=%%A
) else (
set r=!r!%%A
)
echo !r!
)
echo %r%>>Kaiin_fix.txt
757名無し~3.EXE:2012/06/19(火) 23:27:36.15 ID:hGKihNyx
>>755
実行したら

'tr' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

というメッセージが出てしまいました。
うちのPCが古い(WinXP-Home)からでしょうか?
758名無し~3.EXE:2012/06/19(火) 23:32:14.25 ID:hGKihNyx
>>756
そのまんまバッチファイルに保存して実行したら一発でうまく行きました〜!(>_<)
本当にありがとうございます。明日仕事で使うので助かりました!
759名無し~3.EXE:2012/06/23(土) 00:15:06.65 ID:CNQPEC6l
echoの直後にスペースも開けずにピリオドやセミコロンつける書き方あるけどあれってなんの意味があるの?
760名無し~3.EXE:2012/06/23(土) 00:20:03.67 ID:4yKGjq8H
一行開けたい時に使う
761名無し~3.EXE:2012/06/23(土) 00:32:22.36 ID:CNQPEC6l
>>760
いや前スレのレスNo.223に
for /F "tokens=1* delims=" %i in ('ipconfig /all') do @(echo.%i)>>IPconfig.txt
みたいな記述があるんだが、ここのechoの直後にあるピリオドは何か意味があるのかなと思ったんだ。
762名無し~3.EXE:2012/06/23(土) 06:13:03.01 ID:RDDqRHw0
. は 半角スペースの意味
echo (半角スペース)を入れても
echo は on ですとか表示されるだけだから
763名無し~3.EXE:2012/06/23(土) 06:27:49.29 ID:IUrYg+zg
%i は空文字列の場合がある、から
764名無し~3.EXE:2012/06/23(土) 06:40:25.24 ID:yaSGhGdy
>>761
読み込むテキストで空行の場合、%iは空となって、echo %iだとechoと展開されちゃうのでね
まあカッコで括ってるのには別段意味は無いと思われるけど
765761:2012/06/23(土) 10:04:48.19 ID:CNQPEC6l
みなさんありがとう。
試しに

for /F "tokens=1* delims=" %i in ('ipconfig /all') do @(echo.%i)

ってやると

'echo.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

ってエラーが大量に表示され、

for /F "tokens=1* delims=" %i in ('ipconfig /all') do @(echo;%i)

ってやるとipconfig /allってやった時と同じ結果が表示される。
コマンドのバージョンの違い?と思ってググったら環境によって使える記号が違うんですね。↓

http://www.k-tanaka.net/windows/cmd/echo.html

お騒がせしました。
766名無し~3.EXE:2012/06/23(土) 20:42:06.86 ID:bc/3DJjo
echo>echo
echo.
echo;
ってやってみるとわかるよ
767名無し~3.EXE:2012/07/07(土) 13:09:27.69 ID:Kdkcgn1U
DOS上でHDD1からHDD2に 
xcopy を使ってシステムファイルをコピーしようと思います。

USBメモリにDOS起動ディスクを作成して、
DOSを起動してみたんですが、
他のハードディスクのルートやそのディレクトリに移動できません。
コマンドプロンプトで練習したようにうまくいかない・・・。

------------------------
cd D:\
cd E:\
cd F:\

無効なデバイスです。
------------------------

と言われます。
768名無し~3.EXE:2012/07/07(土) 13:36:34.02 ID:X0UV7FVl
・NTFS
・cdはドライブ移動コマンドじゃない
769名無し~3.EXE:2012/07/07(土) 16:22:54.53 ID:Kdkcgn1U
NTFSはダメなんですか?
きょうび、Windows XP以降は全部NTFSじゃないですか・・・・
じゃあ、どうやってDOS起動ディスクで
HDDのファイルをサルベッジするんですか。
770名無し~3.EXE:2012/07/07(土) 16:35:26.06 ID:wZwUCNN4
そういう用途だとWindowsPEじゃね?
ttp://toro.2ch.net/test/read.cgi/win/1257735910/
771名無し~3.EXE:2012/07/07(土) 17:13:02.96 ID:q+2kH2In
以前SysinternalsでNTFS読めるドライバだしてたと思う
シェアだったような気もするが
772名無し~3.EXE:2012/07/07(土) 18:50:21.48 ID:X0UV7FVl
>>769
だからDOSなんて今日日使わない
773名無し~3.EXE:2012/07/07(土) 19:12:39.56 ID:Uxfb91hh
そういう用途ならCDブートLinux使えばいい
Knoppixが有名だけどUbuntuもライブCDになってる
774名無し~3.EXE:2012/07/07(土) 20:56:46.46 ID:iWZr4r4v
>>767
cd /d D:\
じゃないの?
775名無し~3.EXE:2012/07/08(日) 01:19:51.59 ID:QfHoCOig
もう関係ないけど
cd の/dオプションはDOSには無い
776名無し~3.EXE:2012/07/08(日) 18:16:56.79 ID:t735AZ9f
>>770-775
そうなのかー、
PC自作してから10年くらい離れてたから
ぜんぜんわからんわー。
777名無し~3.EXE:2012/07/08(日) 18:51:00.67 ID:t905MSPd
10年前なら今と大して変わらんダロ
778名無し~3.EXE:2012/07/08(日) 19:01:58.26 ID:NciOzAkD
Windows 95の頃からロングファイルネームの問題があったから、
DOSの起動ディスクで起動してxcopyでシステムファイルのバックアップって出来なかったからなぁ
779名無し~3.EXE:2012/07/17(火) 10:35:54.06 ID:08QP62d3
コマンドラインで、引数の文字列に & を入れたいときは
どうしたらよいでしょうか
780名無し~3.EXE:2012/07/17(火) 16:34:51.25 ID:Fe4D8PGu
^&
781名無し~3.EXE:2012/07/17(火) 19:01:32.92 ID:08QP62d3
>>780
ありがとう
できました
782名無し~3.EXE:2012/07/18(水) 00:33:55.68 ID:RoO3HiQY
findstrでは文字コードがUTF8のテキストファイル内の全角文字を検索することは出来ないのでしょうか?
783名無し~3.EXE:2012/07/18(水) 21:35:12.64 ID:26J7ozK/
chcpでutf8にするか1252にするかすれば?
784名無し~3.EXE:2012/07/18(水) 22:30:13.61 ID:b8oEzIqp
>>770
こういう情報って何の本で仕入れるんですか?
Windows PE っていう言葉自体を知らなかったです。

ファイル救出?とかWindowsトラブル?
とかそういうタイトルの書籍を読んだらいいですか?
785名無し~3.EXE:2012/07/19(木) 00:49:38.11 ID:ZGZWnbQ/
>>767そのドライブレター確認したOSとDOS起動ディスクが認識してるドライブレターは同じ?
786名無し~3.EXE:2012/07/19(木) 01:03:52.98 ID:KDsuWFVb
>>783
chcp 1252
を実行してからUTF8のテキストファイルをfidstrで検索してみましたが
検索結果のうち全角文字については文字化けしてしまい正しく表示されませんでした。
というかそもそもchcp 1252を実行するとコマンドラインから全角文字が
入力できなくなりました。
787名無し~3.EXE:2012/07/21(土) 01:20:14.02 ID:Pv4An8kW
1252はutf8じゃなかんべ
788名無し~3.EXE:2012/07/21(土) 01:21:55.75 ID:Pv4An8kW
ふつうaかbかというときはaはbじゃなかんべ
789名無し~3.EXE:2012/07/26(木) 11:29:20.04 ID:CcmXux6t

バッチファイル作成のIF EXIST構文について質問です。

IF EXIST F:\hoge\hogehoge\nul GOTO Label1
このように、指定したディレクトリが存在すればラベルにジャンプするようなことがしたいです。
上記のようなパス名なら問題ないのですが、
ディレクトリにスペースが入る場合は正常に動作しないです。(Documents And Settingsとか)
通常のパス名指定のように、""で囲う方法も駄目でした。

うまく指定する方法があったら教えてください。
790789:2012/07/26(木) 11:39:55.62 ID:CcmXux6t
自己解決しました
791名無し~3.EXE:2012/07/26(木) 12:15:55.40 ID:NBWaatDv
普通に有効だろ?
792名無し~3.EXE:2012/07/29(日) 02:50:13.97 ID:qn0K8bH6
職場でコマンドに詳しい人が「forとcallを併用すれば遅延展開と同じことできるよ」みたいなこと言ってたんですが、どういう意味なのでしょうか?
ググっても全然意味がわかりません・・・
793名無し~3.EXE:2012/07/29(日) 03:30:43.23 ID:2GL95aL2
794名無し~3.EXE:2012/07/29(日) 21:28:24.02 ID:qn0K8bH6
>>793
サンキューです!
echoの前にcallつけるだけでいいんですね。
(1ループ毎のサブプローシージャ呼び出しみたいに展開されてるのだろうか?)
ありがとうございました。
795名無し~3.EXE:2012/07/30(月) 18:10:42.48 ID:66D8ZD+S
Evalみたいなもんだ
796名無し~3.EXE:2012/08/01(水) 23:30:17.13 ID:XL3CDQvv
Evalな
797名無し~3.EXE:2012/08/02(木) 10:56:18.68 ID:TB/SN1Sj
Evalかよ
798名無し~3.EXE:2012/08/05(日) 00:25:05.66 ID:/6Pk7K3z
テキストファイルが1つあるのですが、これの改行を全部取り除いて1行にしてしまうコマンドってありますか?
799名無し~3.EXE:2012/08/05(日) 01:02:49.74 ID:dHLUEPcS
1コマンドはない
nコマンドで作れる
800名無し~3.EXE:2012/08/05(日) 03:03:12.64 ID:/6Pk7K3z
>>799
nコマンドでよいのでお願いします!
801名無し~3.EXE:2012/08/05(日) 15:53:14.73 ID:dHLUEPcS
@echo off
(for /f "delims=" %%I (テキストファイル) do set /p dummy=%%I) > 新テキストファイル
802名無し~3.EXE:2012/08/05(日) 19:24:46.32 ID:/6Pk7K3z
>>801
ありがとうございます!
色々試行錯誤して以下のようにしたら1行で出来ました。

(for /f "delims=" %%i in ('type in.txt') do @set /p dummy=%%i<nul) > out.txt

ところで「%%」を「%」にしてバッチファイルではなく直接コマンドプロンプトから入力すると
set文の実行内容がいちいちタイトルバーに表示されてパフォーマンスがものすごく落ちますね。
これってどうにもならないのでしょうか?まあバッチファイルでやればいいのですが、若干面倒なので…
803名無し~3.EXE:2012/08/06(月) 21:22:45.57 ID:LV5EBWGS
cmd /c (for /f "delims=" %i in ('type in.txt') do @set /p dummy=%i<nul) > out.txt
804名無し~3.EXE:2012/08/06(月) 23:35:59.38 ID:ZB+nrifm
>>803
ありがとうございます。
教えていただいたものをコマンドプロンプトに入力して実行すると
「指定されたファイルが見つかりません。」というエラーになります…
↓のように色々変えて試しましたがやはり同じエラーになりました。
何か原因がおわかりになるでしょうか?

cmd /c (for /f "delims=" %i in ('type in.txt') do @set /p dummy=%i<nul) > out.txt
cmd /c (for /f "delims=" %i in (type c:\in.txt) do @set /p dummy=%i<nul) > c:\out.txt
cmd /c (for /f "delims=" %i in ('type c:\in.txt') do @set /p dummy=%i<nul) > c:\out.txt
cmd /c (for /f "delims=" %i in ("type c:\in.txt") do @set /p dummy=%i<nul) > c:\out.txt
cmd /c (for /f "usebackq delims=" %i in (`type c:\in.txt`) do @set /p dummy=%i<nul) > c:\out.txt
cmd /c (for /f "delims=" %i in (c:\in.txt) do @set /p dummy=%i<nul) > c:\out.txt
cmd /c (for /f "delims=" %i in ('c:\in.txt') do @set /p dummy=%i<nul) > c:\out.txt
cmd /c (for /f "delims=" %i in ("c:\in.txt") do @set /p dummy=%i<nul) > c:\out.txt
cmd /c (for /f "usebackq delims=" %i in (`c:\in.txt`) do @set /p dummy=%i<nul) > c:\out.txt
805名無し~3.EXE:2012/08/06(月) 23:39:57.54 ID:ZB+nrifm
ちなみに

cmd /c "type in.txt" > out.txt

と入力するとin.txtと同一内容のout.txtが作成されるので
in.txtはきちんと存在しています。
806名無し~3.EXE:2012/08/07(火) 00:16:01.54 ID:1JXfprE0
cmd /c for /f "delims=" %i in ('type in.txt') do @set /p dummy=%i<nul > out.txt
807805:2012/08/07(火) 00:53:51.87 ID:ouQbeSLg
>>806
括弧取ればいいだけでしたか…orz
助かりました。どうもありがとうございます。
808名無し~3.EXE:2012/08/07(火) 18:52:29.28 ID:1JXfprE0
ごめんね確認しないで書いてるもんで
809805:2012/08/09(木) 00:46:01.43 ID:CvGiPjbA
>>808
いえいえ見返りもないのにレス頂けただけでもありがたいです。
お手数をお掛けしてすみませんでした。
810名無し~3.EXE:2012/08/09(木) 23:20:20.95 ID:LDsLhA1c
こんなところでこんな質問していいのかわかりませんけど・・・
コマンドプロンプトでNICの正常性を確認したい場合 どんなコマンドを使えばいいんでしょうか
systeminfoコマンドのみででわかるものなんでしょうか
811名無し~3.EXE:2012/08/10(金) 02:22:05.79 ID:HJMCAmsV
ping 127.0.0.1
812名無し~3.EXE:2012/08/10(金) 02:39:13.81 ID:MvUs+0Zv
>>811
TP線抜いたりデバイスマネージャでNIC無効にして試してみて
813名無し~3.EXE:2012/08/11(土) 03:24:44.46 ID:TBiUViGB
テキストファイルを長さゼロの行、又はスペース・タブ以外の文字が無い行を除外して表示させることは出来るのでしょうか?
以下のようなコマンドを考えましたが、これだと長さゼロの行は除外されるのですが、タブしか無い行が表示されてしまいます・・・

findstr "[^]" test.txt
814名無し~3.EXE:2012/08/11(土) 17:29:27.41 ID:EPp283Gd
findstr /v "[ \t]*"
815名無し~3.EXE:2012/08/11(土) 21:07:12.33 ID:TBiUViGB
>>814
やってみましたが、スペース1個だけの行もタブ1個だけの行も表示されてしまいます…
816名無し~3.EXE:2012/08/11(土) 21:40:10.32 ID:TBiUViGB
色々試したら↓でスペースだけの行も非表示にすることが出来ました。

findstr "[^]" test.txt | findstr /v /c:" "

タブの非表示方法は見つけられませんでした…
817名無し~3.EXE:2012/08/12(日) 06:09:25.77 ID:yViiJIGe
cmd /f
818名無し~3.EXE:2012/08/12(日) 08:26:12.28 ID:mofPEIWX
@if (0)==(0) echo off
cscript //nologo /e:jscript "%~f0" <test.txt
goto :eof
@end
var stdin=WScript.StdIn;
while(!stdin.AtEndOfStream) {
var data=stdin.ReadLine();
if (!data.match(/^[ \t]*$/)) WScript.StdOut.WriteLine(data);
};
819816:2012/08/12(日) 22:27:36.56 ID:dDRqHhz6
>>818
それでばっちりうまくいきました。ありがとうございます!
一応↓のようにしたら希望に近い動作にはなったのですが、
これだと内容のある行のタブも全てなくなってしまうという欠点があったので助かりました。
コマンドラインはタブの扱いは苦手なようですね…

more /t0 /s test.txt | findstr "[^]"
820名無し~3.EXE:2012/08/12(日) 22:34:42.16 ID:dDRqHhz6
あれ?
今やり直して見たら↓でうまくいくような気が・・・

more /s test.txt | findstr "[^]"
821820:2012/08/13(月) 00:28:40.47 ID:CN/4Vl7Y
たびたびすみません。やはり>>820のやり方だとダメですね。
結果をテキストファイルに出力してみるとタブが全て複数個のスペースに変換されていました。
822名無し~3.EXE:2012/08/14(火) 15:36:46.82 ID:Q2YR48hU
findstr /r /c:"[^ ]" test.txt

        ↑^空白タブ
823名無し~3.EXE:2012/08/14(火) 16:38:53.22 ID:4sKSLfuZ
それ、バッチファイルからでないと動作せんだろ?
それとも拡張機能だとかをオフにすればコンソールから叩けるのか?
824名無し~3.EXE:2012/08/14(火) 17:56:36.34 ID:Q2YR48hU
あほだなw
more|cmd
825名無し~3.EXE:2012/08/14(火) 18:03:55.06 ID:Q2YR48hU
ちがった
type con|cmd
826名無し~3.EXE:2012/08/14(火) 22:11:42.18 ID:4sKSLfuZ
>>825
それって「cmd /f:off」と意味同じ?
どうでもいいけど「cmd /f:off」と「cmd /f:on」ってどちらかを一度でも実行すると
ファイル名のタブ補完機能が無効になってタブが入力できるようになるけど、
コマンドプロンプトを起動しなおさない限り有効に戻せなくなるね。
(「cmd /f:on」を実行してもタブ補完機能が有効にならず相変わらずタブが入力できる状態のまま)
これって仕様?
827名無し~3.EXE:2012/08/15(水) 02:10:50.26 ID:jfc8bPaK
たぶんバグなんだろう、もはや仕様ってことになるんだろうと思う
けれども、ファイル名フォルダ名入力の補完機能は一応ちゃんと切り替わってるようだよ
([Ctrl]+[D],[Ctrl]+[F])
cmdの新たなインスタンスを作成しネストした場合、親アプリケーションの環境を継承する
ことにはなっているが、パラメタを指定した場合、全く同じというわけではないようだ
個人的には、[Tab]の補完はレジストリ参照だから/fオプションが指定されて
一旦リセットした時にその部分までリセットされちゃって引き継ぐことを忘れちゃっているんだろう
(/fじゃない別のオプションだとちゃんと引き継がれてるから)

あと、子インスタンスを終了して親インスタンスに戻るにはexitコマンドを使う
cmd /f:on
の後、exitとやってやれば親に戻ってこられる
当然ながら子インスタンスの環境は破棄されるので子インスタンスで設定した環境変数は継承されない
(setlocal/endlocalと同じだと思えばいい)
ただ、親インスタンスに戻ってきても[Tab]での補完は無効になっちゃうのは何故なのか分からない
(誰かこの辺の動作を教えて下され)

最後に
type con|cmdを使うのは俺はどうかと思う
なぜこんなのを使うのかその理由が聞きたい
動作的には、con特殊ファイルの内容をパイプすることになるわけだが
エコー機能をoffにしないと(cmd /q)、タイプした文字(つまりconファイルの中身に相当する)
がそのまま表示されちゃうし、いろいろと不都合が発生しそうだ
(exitで戻れるが存在しないファイルに書き込もうとしたとかエラーが出るし、
 exitじゃなくて、[Ctrl]+[C]で中止しちゃえばこのエラーは見なくて済むけど
 for /?でヘルプを見ようとしたら...固まっちゃったぞ)

なお環境はXPでのことだから7なら違うのかも知れんけど
828名無し~3.EXE:2012/08/15(水) 11:14:15.44 ID:cz6Z7lt0
for /f "delims=N" %I in ('cmd /u /c echo 三') do findstr /r /c:"[^ %tab%]" test.txt
829名無し~3.EXE:2012/08/15(水) 11:15:39.48 ID:cz6Z7lt0
ミス
for /f "delims=N" %I in ('cmd /u /c echo 三') do findstr /r /c:"[^ %I]" test.txt
830名無し~3.EXE:2012/08/15(水) 15:23:00.34 ID:2oHUuuJs
>>826-827
あほだなw
831名無し~3.EXE:2012/08/15(水) 19:35:42.22 ID:JYYBD8eL
>>829
UNICODEの「三」はANSIでは「<TAB>+N」な訳か。すごい妙技だなw
832名無し~3.EXE:2012/08/16(木) 01:09:37.35 ID:YlGbHwUX
dir c:\windows\*2.txt /s/b

とかやると拡張子が「txta」のものも表示されたり、8.3形式側のファイル名で合致するものも表示されたりしますが、
みなさんはいちいち

dir c:\windows\*2.txt /s/b | findstr "2\.txt$"

とかやってるんでしょうか?
とても面倒です。何かもっと簡単な方法があれば教えて下さい。
833名無し~3.EXE:2012/08/16(木) 18:35:48.35 ID:4Tkwha3H
なし
834名無し~3.EXE:2012/08/17(金) 00:38:32.55 ID:QE8a/5Ie
835名無し~3.EXE:2012/08/18(土) 00:56:56.99 ID:Ch+wdkb1
>>834
CH12_0047.txtの8.3形式はCH3013~1.TXTだから
「del /q CH30*.txt」を実行するとCH12_0047.txtも消えちまうのか。震えが止まらんな。
836名無し~3.EXE:2012/08/18(土) 02:53:05.88 ID:GAss6Xsd
つ http://www.atmarkit.co.jp/fwin2k/win2ktips/1200disable83/disable83.html

いい加減8.3名の自動生成機能はデフォルトOffでいいと思うんだけどなぁ
837名無し~3.EXE:2012/08/18(土) 08:07:23.69 ID:PsqJnwYm
DELとか大昔から8.3の影響を受ける筆頭だろ
http://support.microsoft.com/kb/164351/ja

喜べ少年。君の願いは、ようやく叶う
8からはシステム以外はフォーマット時既定Offだ
838名無し~3.EXE:2012/08/18(土) 14:53:15.41 ID:kdSIi1cP
del *.xls
てやれば
*.xlsx
も消してくれるわな
839名無し~3.EXE:2012/08/18(土) 16:56:03.80 ID:Ch+wdkb1
>>836-837

なるほど、有名な話なんですね。

>>838

1.abc
1.abcde
123456789012345678901234567890.abc
123456789012345678901234567890.abcde

という4つのファイルがあって「del ????????.abc」ってやると全部消えるw
8.3形式のこと知らないと1番目のファイルだけ消えると考えちゃいそうだけど。
これって最初はワイルドカード使った時だけの問題かと思ってたけどそうじゃないんだね。
ただ単にファイルは2つの名前を持ってるというだけのことか。
それにも関わらずMSはオフィスとかVisualStudioとかで3バイト以上の拡張子をバンバン使って
この問題を複雑化させてるね…
840名無し~3.EXE:2012/08/25(土) 13:49:21.52 ID:kquHFYQI
Litst1.csv(商品コード、商品名)-----
100,商品1
200,商品2
300,商品3
400,商品4

Litst2.csv(商品コード、価格)-----
100,5000
200,10000
400,20000

Litst3.csv(商品コード、商品名、価格)-----
100,商品1,5000
200,商品2,10000
300,商品3,
400,商品4,20000


Litst1.csvとLitst2.csvからLitst3.csvを作ることは出来ますか?
Litst1.csvには全ての商品が載っていますが、Litst2.csvには値段の無い商品(試供品など)は載っていません。
2つとも商品コード順になっています。
今は価格改定がある度にエクセルにインポートして手作業で編集しているのですごく不便です・・・
841名無し~3.EXE:2012/08/25(土) 13:59:07.75 ID:Bv8AIAN8
エクセルの表ならコマンドラインでわざわざやらんでもエクセルの関数使えばいいだろ。

升目のある表だけのソフトじゃないんだからさ…
842名無し~3.EXE:2012/08/28(火) 02:05:54.99 ID:GPomH5RQ
>>840
俺はコマンドライン知らんが、原始的な方法としてはlist1とlist2を結合してソートして
正規表現置換で整形してしまえばいいんじゃね
list3で管理するようにして、必要に応じてlist1やlist2を吐くようにするのが根本的な
解決だろうけど
843名無し~3.EXE:2012/08/28(火) 02:25:06.93 ID:TeyoM5/G
エクセルにはこういうことに使うためにあるVLOOKUPっていう便利な関数があるんです。
844840:2012/08/28(火) 06:56:55.52 ID:8ve8hln+
本当はエクセルなんて使いたくないんです。
最終的にはcsvにしたいだけなので。
バッチコマンドでどうにかならないでしょうか?
845名無し~3.EXE:2012/08/28(火) 07:43:11.60 ID:GPomH5RQ
>>843
vlookupって集計用じゃなかったっけ
list1とlist2からvlookupでlist3を作成。list3の表自体を直接修正はできないので結果を
csvで出力してから修正。修正後のデータをexcelで読み込んで、list1とlist2の形で出力
てことになるのか?
846名無し~3.EXE:2012/08/28(火) 10:51:40.75 ID:WUzBuKO2
@echo off
(for /f "tokens=1,2* delims=," %%I in (list1.csv) do (set /p=%%I,%%J,<nul
for /f "tokens=2 delims=," %%K in ('set /p"=^%%I,"^<nul^|findstr /r /g:/ list2.csv') do set /p=%%K<nul
echo;))>list3.csv
847名無し~3.EXE:2012/08/28(火) 17:41:06.22 ID:5XZE6qYu
やめとけ
powershellなら簡単にできるぞ(たぶん)
そっちで聞け
848名無し~3.EXE:2012/08/28(火) 21:38:10.86 ID:8ve8hln+
>>846
ありがとうございます!上手くlist3.csvが作成されました。
教えて頂いたバッチは1行目以外は全く理解不能で謎の呪文にしか見えませんけど・・・(笑)
今のところ項目が増える予定はないのでこのままで問題ないです。
本当にありがとうございました。
849名無し~3.EXE:2012/08/28(火) 21:42:51.66 ID:8ve8hln+
>>845
私にはやり方の手順がうまくイメージ出来ないです。
でも今後のためにvlooupという関数については調べて見ますね。
850名無し~3.EXE:2012/08/29(水) 07:47:33.60 ID:wUW1UYub
しかしなんでわざわざよりによって最も不向きなWindowsコマンドスクリプトで
こんな処理をさせなくてはならんのか。
851名無し~3.EXE:2012/08/29(水) 13:12:43.09 ID:CZ9foUYv
商品名や価格にカンマが入っているとすべてが崩壊
852名無し~3.EXE:2012/08/29(水) 14:24:45.26 ID:klObh3Z5
まぞだな
853名無し~3.EXE:2012/09/06(木) 23:53:51.54 ID:VegFW4+R
UTF8のテキストファイルをShift-JISに変換して保存することは出来ますか?
854名無し~3.EXE:2012/09/07(金) 00:25:04.88 ID:FvKPD0bJ
powershell なら余裕だが cmd だと難しいな
855名無し~3.EXE:2012/09/07(金) 00:27:48.12 ID:F0SzUMZ9
856名無し~3.EXE:2012/09/07(金) 01:35:37.10 ID:lUJO4jIl
難しいな
857853:2012/09/07(金) 21:44:49.77 ID:JTeClmc8
>>855
ありがとうございます。試しにメモ帳を開いて「あああいいいううう」と入力してファイル名をutf8.txt、
文字コードをUTF8として保存し、以下のスクリプトを実行しました。


set f1=utf8.txt
set f2=sjis.txt
set t=tmp.txt
start /min /wait cmd /c chcp.com 65001 ^& ^( set /p x="��"^<nul ^& cmd /u /c type %f1% ^) ^>%t%
start /min /wait cmd /c chcp.com 932 ^& cmd /c type %t% ^>%f2%


作成されたsjis.txtを開いて見ると文字コードはSJISになっているのですが、
内容が「?あああいいいううう」となって先頭に「?」がついてしまいました。
なぜなんでしょう?どなたか原因をご存知ないでしょうか?
ちなみに4行目で文字コードをUTF8からUnicodeに変換し、5行目でUnicodeからSJISに変換しています。
858名無し~3.EXE:2012/09/07(金) 23:20:00.95 ID:lUJO4jIl
utf8にbomがあるんじゃねーか
start /min /wait cmd /c chcp.com 65001 ^& ^( cmd /u /c type %f1% ^) ^>%t%
でやってみ
859857:2012/09/08(土) 12:29:57.18 ID:zYwdbrke
>>858
ありがとうございます。bomなんて知りませんでした。(昔ゲーセンでやった「1942」というシューティングゲームが思い浮かびましたw)
つまり私が>>857に書いたのはbom無し用であり、bomを付加してしまっているのですね。
そしてメモ帳はUTF8で保存するとbomを付加する仕様なのでダブったbomが「?」と表示されてしまうと。
おかげでコマンドでUTF8→SJIS変換が出来るようになりました。ありがとうございます。
860857:2012/09/08(土) 16:12:45.33 ID:zYwdbrke
ちなみに5行目は

type %t% >%f2%

でもよいみたいです。
861名無し~3.EXE:2012/09/08(土) 21:41:52.24 ID:zYwdbrke
すみません、また質問なんですが、bomってコマンドプロンプト上からキーボードで入力できるのでしょうか?
>>857の「set /p x="��"」の部分なんですが、キーボードでは厳しいですか?
862名無し~3.EXE:2012/09/08(土) 22:37:39.77 ID:7MfyrgNJ
alt+テンキー255
alt+テンキー254
863名無し~3.EXE:2012/09/15(土) 14:46:41.47 ID:C3uVNsum
バッチ中に一時ファイル用としてramdiskを作れるようなの無いですかね?
864名無し~3.EXE:2012/09/15(土) 15:55:32.98 ID:AGBRDVCI
環境変数で代替しろ
865名無し~3.EXE:2012/09/15(土) 16:07:52.70 ID:C3uVNsum
環境変数で代替?どういうこっちゃ。

バッチで画像処理するツールの為の数十MBの
作成削除書き換えが頻繁な一時ファイル置き場が
欲しいわけなんだけど。
866名無し~3.EXE:2012/09/15(土) 16:40:53.96 ID:tpqmeZ3C
>>865
環境変数には8KB弱の文字列を入れることができるから

と書こうと思ったが数十MBか。 面白い展開だな。
/Eオプションでどこまで広げられるか、で決まるな。
867名無し~3.EXE:2012/09/15(土) 16:46:17.14 ID:C3uVNsum
ぶっちゃけディスクアクセスを減らしたい。あとフラグメント防止も兼ねて。
868名無し~3.EXE:2012/09/15(土) 17:03:06.51 ID:YXJaFKtd
気持ちはわかる
869名無し~3.EXE:2012/09/16(日) 00:45:05.49 ID:93bKjq9K
一時的じゃなくて恒久的にRAMDISKを作成しておくのはダメなのか?
870名無し~3.EXE:2012/09/17(月) 20:55:12.13 ID:H96X9x8A
恒久的なのはメモリの無駄遣いなんだよなぁ…
871cmd:2012/09/17(月) 22:36:52.59 ID:EwsykKiH
Windows 7
超初心者です。レジストリの設定の進み方を教えてください。
HKEY_CLASSES_ROOT\.bat\ShellNewです。
872cmd:2012/09/17(月) 22:52:35.61 ID:EwsykKiH
HKEY_CLASSES_ROOTから\.bat\ShellNewに進みたいのですが、ツリーが多く長いので探せません。
873名無し~3.EXE:2012/09/17(月) 23:03:09.80 ID:H96X9x8A
思い切りスレ違いでその名前って…釣り?
874名無し~3.EXE:2012/09/17(月) 23:40:59.58 ID:NsVU8IOn
そもそもこのスレ住人は、日本語かコマンドで説明してもらえないと理解できません
875名無し~3.EXE:2012/09/17(月) 23:51:10.97 ID:s1iKQ0X9
>>870
スワップ可能な奴無かったっけ?
876名無し~3.EXE:2012/09/18(火) 10:49:12.05 ID:Lu9E39xv
【環境】

OS:windows vista business SP2 64bit
上記OSに付属しているコマンドプロンプトで、以下の処理をさせたいと考えています。


【やりたい事】

複数ファイル(128文字程度の日本語ファイル名)の、サイズゼロのダミーファイルを
作成するバッチファイルを作りたいと考えています。


【詰まっている事】

以下のコマンドで、ディレクトリ配下の全ファイル名の取得とダミーファイルの作成は
出来る事まで調べられたのですが、これらをどう組み合わせればいいのかが判りま
せんでした。

ディレクトリ配下のファイル名取得:dir /b
サイズゼロのダミーファイルの作成:fsutil file createnew <ディレクトリパス\ファイル名> 0

パイプを使ってファイル名のデータを受け渡しをすれば良いと思うのですが(あるいは
それをファイル数分ループさせる?)、コマンドラインでそれを実現する能力が今の
自分にはありませんでした。



上記につきまして、ご教示いただければ幸いです。
877名無し~3.EXE:2012/09/18(火) 11:49:17.63 ID:qz0uSmZ2
type nul > ファイル名
878名無し~3.EXE:2012/09/18(火) 12:00:29.89 ID:QAVt4hR4
RoboCopy /CREATE
879名無し~3.EXE:2012/09/18(火) 12:50:32.58 ID:Lu9E39xv
回答ありがとうございました。
手元で試したところ、robocopy /CREATE で簡易に意図通りの動作をさせる事ができました。
こちらを使用させていただきます。


五月雨な質問になって申しわけありませんが、もう一点質問させてください。
「サイズが0でないファイルのみを別ディレクトリにコピー or 移動させる方法」は
有りますでしょうか。
copyやmoveコマンドのオプションを調べてみましたが、さすがにこのような機能は
無い様で、googleセンセに問い合わせても解決できておりません。
お手数ですがよろしくおねがいいたします。

# やりたい事は、実体のあるファイルとダミーファイルが混在しているディレクトリから
# 実体のあるファイルを取り出したい(≒ダミーファイルを削除したい)となります。
880名無し~3.EXE:2012/09/18(火) 13:31:44.13 ID:QAVt4hR4
RoboCopy /MIN:1 /MOV
881名無し~3.EXE:2012/09/19(水) 10:00:56.59 ID:qVAVC3Ft
御礼が遅くなりましたが、意図したとおりの動作をするスクリプトを作れました。
ご教示ありがとうございました。
882名無し~3.EXE:2012/09/19(水) 10:06:04.12 ID:wpt28jIu
スクリプト中の処理が失敗したらそこでスクリプト自体が終了するような事って出来ます?
bashで言うところのset -sのような
883名無し~3.EXE:2012/09/19(水) 11:28:59.26 ID:7P9VvtCj
-e じゃね?
884名無し~3.EXE:2012/09/21(金) 18:25:37.32 ID:8hwoTWoP
各行 || exit /b
各行 || goto :eof
885名無し~3.EXE:2012/09/29(土) 01:18:09.31 ID:vfDPP9ja
1
3
6
7
10

って内容のテキストファイルを

1

3


6
7


10

に書き換えることって出来る?
886名無し~3.EXE:2012/09/29(土) 01:31:05.01 ID:vfDPP9ja
すみません、間違えてたのでもう一度書きます。

1,AAA,あああ,111
3,BBB,いいい,222
6,CCC,ううう,333
7,DDD,えええ,444
10,EEE,おおお,555

という内容のテキストファイルを

1,AAA,あああ,111

3,BBB,いいい,222


6,CCC,ううう,333
7,DDD,えええ,444


10,EEE,おおお,555

に書き換えることは出来ますでしょうか?
つまりカンマで区切られた最初の項目で番号がとんでいるところに改行を入れたいのです。
887名無し~3.EXE:2012/09/29(土) 03:08:46.28 ID:8NAnYJ1b
確実にデータがその形式でかつ昇順だとすれば
@echo off
set cnt=2
for /f "tokens=* delims=," %%I in (list.txt) do (
call :insert_lines %%I
echo. %%I
set /a cnt+=1
)
goto :eof

:insert_lines
for /l %%s in (%cnt%,1,%1) do @echo.&set /a cnt+=1
goto :eof
888名無し~3.EXE:2012/09/29(土) 03:11:12.01 ID:8NAnYJ1b
訂正
@echo off
set cnt=2
for /f "tokens=*" %%I in (list.txt) do (
call :insert_lines %%I
echo %%I
set /a cnt+=1
)
goto :eof

:insert_lines
for /l %%s in (%cnt%,1,%1) do @echo.&set /a cnt+=1
goto :eof
889886:2012/10/02(火) 02:14:43.47 ID:O1uaudI+
>>887-888

返事が遅れてすみません。
うまくいきました。ありがとうございます!
スクリプトまで書いて頂いて申し訳ないです。
890名無し~3.EXE:2012/10/07(日) 00:44:58.40 ID:2YgTPdV8
父がデジカメを趣味にしていて、撮った写真をパソコンに保存しています。
それでパソコンが壊れた時に備えて定期的にUSBメモリにバックアップしたいと頼まれました。
バックアップ対象のフォルダは決まっているので「robocopy c:\aaa g:\aaa /mir」というコマンドで出来そうなのですが、
例えばUSBメモリの挿し忘れや、USBメモリのドライブレターがずれた時などに備えて
USBメモリのドライブ直下に「abcxyz.txt」などというファイルを作り、ドライブ直下にこのファイルが
存在するドライブがある場合のみそのドライブにコピーを行い、そういうドライブが無い場合は
「USBメモリが挿入されていません」とメッセージを出してバッチを終了させるようにしたいのです。
そこで「AからZまでをループさせてうんたらかんたら・・・」で出来そうだなと思ったのですが、
実現方法が全然わかりません(^^;)
Forコマンドとか使えばいいんでしょうか?
ちなみにUSBメモリは大容量なので容量不足の心配はありません。
891名無し~3.EXE:2012/10/07(日) 01:03:20.68 ID:2YgTPdV8
すみません、追記です。
今調べたら父のパソコンは「Windows XP Home」で、robocopyコマンドが無いようです。
いきなり詰んでしまいました・・・(T_T)
892名無し~3.EXE:2012/10/07(日) 01:44:09.71 ID:FSAsTUzK
893名無し~3.EXE:2012/10/07(日) 06:22:23.05 ID:rwc8PvCC
>>890
そういうのは素直にGUI付きのバックアップツールを使った方が楽だと思われ。
バッチだとパス指定ミスってても気付きにくいから
いざ壊れて復元しようと思ったらバックアップできてなかった!
なんてことにもなりかねないし。
894名無し~3.EXE:2012/10/07(日) 23:25:12.89 ID:2YgTPdV8
>>892
ありがとうございます。おかげでrobocopyが使えるようになりました。

一応今日丸一日費やしてなんとか自力で作ってみました。
非常に冗長ですが、一応動きましたw
(ちなみにドライブAを指定すると変な動きをしたのでAは省きました)

-------------------------------------------------------

@echo off
set drv=
if exist b:\abcxyz.txt set drv=b
if exist c:\abcxyz.txt set drv=c
if exist d:\abcxyz.txt set drv=d
if exist e:\abcxyz.txt set drv=e
if exist f:\abcxyz.txt set drv=f
if exist g:\abcxyz.txt set drv=g
if exist h:\abcxyz.txt set drv=h
if exist i:\abcxyz.txt set drv=i
if exist j:\abcxyz.txt set drv=j
if exist k:\abcxyz.txt set drv=k
if exist l:\abcxyz.txt set drv=l
if exist m:\abcxyz.txt set drv=m
if exist n:\abcxyz.txt set drv=n
if exist o:\abcxyz.txt set drv=o
if exist p:\abcxyz.txt set drv=p

続く〜
895名無し~3.EXE:2012/10/07(日) 23:26:04.52 ID:2YgTPdV8
〜続き

if exist q:\abcxyz.txt set drv=q
if exist r:\abcxyz.txt set drv=r
if exist s:\abcxyz.txt set drv=s
if exist t:\abcxyz.txt set drv=t
if exist u:\abcxyz.txt set drv=u
if exist v:\abcxyz.txt set drv=v
if exist w:\abcxyz.txt set drv=w
if exist x:\abcxyz.txt set drv=x
if exist y:\abcxyz.txt set drv=y
if exist z:\abcxyz.txt set drv=z
if not defined drv echo USBメモリが差し込まれていません。差し込んでからもう1度実行して下さい。& set /p a=& goto :eof
robocopy c:\aaa %drv%:\aaa /mir
echo.
echo.
if %errorlevel% gtr 1 echo バックアップが失敗しました。もう1度やり直して下さい。& set /p a=& goto :eof
echo バックアップが完了しました。何かキーを押して下さい。& set /p a=
896名無し~3.EXE:2012/10/07(日) 23:41:37.90 ID:EgqJ6nAm
if文をforで回すなら
for %%a in (b c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%a:\abcxyz.txt set drv=%%a
897名無し~3.EXE:2012/10/08(月) 09:09:23.58 ID:V+aCKgEx
そういう機能があるバックアップソフト使えよ
898894:2012/10/08(月) 11:52:03.09 ID:IznETznk
>>896
めちゃくちゃ短くなりました。ありがとうございます!
899名無し~3.EXE:2012/10/08(月) 22:33:49.79 ID:19eXqaKh
ちょっと話が逸れるけど
USBメモリじゃなくてUSBマルチメモリリーダライタでSDカードを刺した場合に
同じことをやるとカードを刺してないドライブの場合にエラーのメッセージボックスが
開いてそこでbatが一時停止してしまった
(Windows - ディスクがありません Exception Processing Message c0000013)

そこで、カードを刺してないドライブの場合を回避出来ないかとチャレンジしてみた
するとdiskpartコマンドでvolume一覧が取得できることが分かった(管理者権限が必要)
(ただ、XPの場合) Volume一覧でTypeが"リムーバプ(pu)ル"になってるのはバグだな

for /f "skip=9 tokens=3,4" %%a in ('echo list volume^|diskpart') do if "%%b" neq "リムーバプル" if exist %%a:\abcxyz.txt set drv=%%a
900名無し~3.EXE:2012/10/09(火) 12:02:10.16 ID:dP495pbP
diskpart に echo で単発コマンドを渡すのはなんとなくキモイな……
diskpart は exit で終わっておきたいから、手間でも /s でスクリプトを
渡してやったほうが落ち着く

個人的な感想でスマン

あと、「リムーバブル」の表示が化けるならそれはそのPCの問題
普通は化けたりしない
901名無し~3.EXE:2012/10/09(火) 12:56:19.55 ID:jW+kkYmn
いや、diskpart.exeにpuで書かれてるんだよ
902名無し~3.EXE:2012/10/09(火) 12:59:14.47 ID:Hm3MktIb
そういう誤字は多いな、XP
903名無し~3.EXE:2012/10/09(火) 14:57:11.01 ID:dP495pbP
>>901
ああぁ、把握した、ブ であるべきが プ になっているってことか、
pu で化けているってことかと勘違いした、すまん
904名無し~3.EXE:2012/10/15(月) 11:32:15.30 ID:X31E4nYu
お知恵をお借りいたしたく。
OS:
windows vista 64bit

やりたい事:
キーワードが列挙されているリストAがあります。
任意のファイルBが入力された場合、そのファイルBのファイル名とリストAのキーワードを比較して、
ファイル名にキーワードが含まれていた場合に処理Cを実行するような処理を作ろうとしています。
その処理の中の「ファイル名にキーワードが含まれているか」の判定文の書き方がわかりません。
この部分、どのようにすれば良いでしょうか?


させたい処理の例:
リストAの記述
hoge[aaa]
hoge[bbb]
hoge[CCC]

ファイルBのファイル名
hoge[aaa]20120101.txt

バッチ例:
setlocal enabledelayedexpansion
for /f "delims=" %%A in (リストA) do (

if (ファイル名にキーワードが含まれているかの判定) (
真の処理
)
)

上記例だと、リストAの1行目の文字列はファイルBのファイル名に含まれる為に"真の処理"が実施され、
リストAの2〜3行目の文字列はファイル名に含まれない為に何も実施されないのが、期待値となります。
905名無し~3.EXE:2012/10/15(月) 15:46:43.39 ID:X31E4nYu
ggrセンセと先達の知恵で解決できました。
ご協力ありがとうございました

---

echo ファイル名 | find "リストから取ってきた文字列" > NULL
IF NOT ERRORLEVEL 1 (
真の処理
)
906名無し~3.EXE:2012/10/17(水) 20:08:15.90 ID:LmUXH1h4
OS:windows7 64bit

ファイル名を変数に入れ、その変数で示されるファイルのサイズが
ゼロかどうかで処理を分岐させるバッチを作ろうとしていますが、
上手くいきません。


set F=z:\aaa
if %~zF==0 goto SIZE_ZERO

:SIZE_ZERO



上記を実行すると"バッチ パラメータの置き換えで、パス演算子の
次の使用法は無効です.有効な形式については、CALL /? または FOR
/? と入力してください。"と表示されますが、ヘルプを見ても具体的
にどうすべきなのかが分かりませんでした。

解決方法をご教示ください。
907名無し~3.EXE:2012/10/17(水) 20:47:36.91 ID:ecr2oTC9
CALLを使うとこんな感じ

set F=z:\aaa
call :CHECK_ZERO %F%
goto :eof

:CHECK_ZERO
if %~z1%==0 goto SIZE_ZERO
goto :eof

:SIZE_ZERO


FORを使うとこんな感じ

set F=z:\aaa
for %%a in (%F%) do if %%~za==0 goto SIZE_ZERO
908名無し~3.EXE:2012/10/17(水) 22:55:31.49 ID:LmUXH1h4
出来ました。ありがとうございます。

一度別の変数に入れなおしてから比較するのですね…
909名無し~3.EXE:2012/10/17(水) 23:54:17.08 ID:VR4de62Z
>>908
普通の環境変数には修飾子が使えないわけで...(別変数に入れなおしてもダメ)
修飾子が使えるのは、バッチパラメタとfor参照変数だけ
910名無し~3.EXE:2012/10/19(金) 22:40:18.23 ID:c1DsyCzz
誤 for参照変数
正 for変数参照
911名無し~3.EXE:2012/10/20(土) 22:43:24.14 ID:TBgnsXGG
912名無し~3.EXE:2012/10/20(土) 22:44:27.52 ID:duQLcIVJ
913名無し~3.EXE:2012/10/28(日) 01:58:19.19 ID:OsymH7ca
一行にセミコロンがいくつかあるテキストファイルをセミコロンを改行に置き換えたい
バッチファイル作ってみたがちゃんと動作しない
行途中のセミコロンが削除され、最後のセミコロンだけLFに置き換わる
たすけて

====test_inpput.txt====
AAA; BBB; CCC;
DDD; EEE;

=====作ってみたバッチファイル==============
@echo off

set output=test_output.txt

type nul >%output%

setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%A in (test_input,txt) do (
set line=%%A
echo !line:;=!LF!>>%output%
)
endlocal
914名無し~3.EXE:2012/10/28(日) 10:11:47.16 ID:PvXRJQzF
@if (0)==(0) echo off
cscript.exe //nologo //e:jscript "%~f0" < test_inpput.txt
goto :EOF
@end
WScript.Echo(WScript.StdIn.ReadAll().replace(/;/g,"\r\n"));
915名無し~3.EXE:2012/10/28(日) 11:29:51.10 ID:OsymH7ca
>>914 それに出力ファイル指定すればできました!
ありがとうございます(_ _)
916名無し~3.EXE:2012/10/28(日) 12:27:58.34 ID:eAz3CEDu
同じ内容を書くなら、きっと俺も>>913のように書くな…
>>913の何が悪いのか、ご教授頂ければ幸いです。
917名無し~3.EXE:2012/10/28(日) 13:22:58.62 ID:IveMoZwI
見てすぐわかる
!line:;=!LF!
これは変数の置換 !line:;=! と 文字列 LF! だから。
918名無し~3.EXE:2012/10/28(日) 13:40:10.16 ID:IveMoZwI
setlocal enableextensions enabledelayedexpansion
set out=out.txt
type nul>%out%
set LF=^


rem 改行抜かさない事
for /f "delims=" %%i in (in.txt) do call :sub "%%~i"
goto :eof
:sub
set line=%~1
echo %line:;=!LF!%>>%out%
goto :eof
919名無し~3.EXE:2012/10/28(日) 21:35:58.53 ID:PvXRJQzF
変数が展開されるし特殊文字でおかしくなる
ちゃんとやると面倒
920名無し~3.EXE:2012/10/28(日) 22:15:53.53 ID:IveMoZwI
まあね。文字列扱うならバッチに拘ることはない。
921名無し~3.EXE:2012/10/29(月) 01:19:15.44 ID:RWLMA0hX
丸投げですみませんがどのように記述すればよいのか教えてください。

以下のようなinput.txtをoutput.txtのように変換したいと思っています。
output.txtはエクセルで読み込む事を想定しています。

input.txtは{}で括った2段階の階層構造となっています。
({,や},のコンマはinput.txtを作る段階で付随してしまいました)
また、"見出し","値"という形式で並んでおり、
見出しのTITLE,SUBTITLE,AAA,BBB,CCC,DDDは完全に固定された文字列ですが、
値のtest1,test2,aa,dddなどは数値だったり文字列だったりします。
以下のサンプルのinput.txtファイルは2つのTITLEを持ちますが、
ファイルによってはTITLEが3つ以上ある場合もあります。

まずはTITLE〜TITELの直前まで1つのtxtファイルとして切り出してみようとして、
くじけてしまいました。。。
922名無し~3.EXE:2012/10/29(月) 01:21:21.77 ID:RWLMA0hX
===input.txt=========================
{,
TITLE,test1
SUBTITLE,test2
{,
AAA,aa
BBB,bb
CCC,CC
},
{,
DDD,ddd
},
},
{,
TITLE,test3
SUBTITLE,test4
{,
AAA,aaaa
DDD,dddd
},
},
======================================

===output.txt======================
TITLE,SUBTITLE,AAA,BBB,CCC,DDD
test1,test2,aa,bb,cc,
test1,test2,,,,ddd
test3,test4,aaaa,,,dddd
====================================
923名無し~3.EXE:2012/10/29(月) 04:13:33.09 ID:lS8S2JMX
@if (0)==(0) echo off
cscript.exe //nologo //e:jscript "%~f0" < input.txt > output.txt
goto :EOF
@end
n=['TITLE','SUBTITLE','AAA','BBB','CCC','DDD'];v={};s=0;
for (i=0;i<n.length;i++) v[n[i]]='';
WScript.Echo(n);
while (!WScript.StdIn.AtEndOfLine){
line=WScript.StdIn.ReadLine().split(',');
switch(line[0]){
case '{' : s++; break;
case '}' : if(s--==2){
for (i=0,tmp=[];i<n.length;i++) tmp.push(v[n[i]]);
WScript.Echo(tmp);
for (i=2;i<n.length;i++) v[n[i]]=''}; break;
default: v[line[0]]=line[1]; break;
}}
924名無し~3.EXE:2012/10/29(月) 08:25:21.47 ID:EqDA/2Wi
スペースとか特殊文字とかがあるとダメになるけど、batコマンドだけでやるなら
@echo off
set index=0&set t0=
for /f "tokens=1,2 delims=," %%a in (input.txt) do if "%%b" neq "" call :sub %%a %%b
set t=%t1%&for /l %%a in (2,1,%index%) do call set t=%%t%%,%%t%%a%%
echo %t%
set nest=0&set k1=&set k2=&for /l %%a in (1,1,%index%) do set d%%a=
for /f "tokens=1,2 delims=," %%a in (input.txt) do call :next %%a %%b
goto :eof
:sub
set hit=-1&for /l %%s in (0,1,%index%) do call :sub2 %%s %1 %%t%%s%%
if %hit% neq -1 set d%hit%=%2&call set k%nest%=%%k%nest%%% %hit%&goto:eof
set /a index+=1
set t%index%=%1
goto :eof
:sub2
if "%2"=="%3" set hit=%1
goto :eof
:next
if %1 equ { set /a nest+=1&set disp=on&goto :eof
if %1 neq } call :sub %*&goto :eof
if %disp%==off goto :next2
set d=%d1%&for /l %%c in (2,1,%index%) do call set d=%%d%%,%%d%%c%%
echo %d%
:next2
call :del %%k%nest%%%&set /a nest-=1&set disp=off&goto :eof
:del
(for %%c in (%*) do set d%%c=)&set k%nest%=&goto :eof
925921:2012/10/30(火) 00:59:08.31 ID:1w0mYBgn
>>923>>924お二人ともありがとうございました
>>923
WHSは理解が乏しいですが、C言語のように配列を使えるのは読み易いですね
実際に組み込んでみたところ、ほぼ思い通りの動作が実現できました
見出しの"SUBTITLE"が階層の1層目にも2層目にもあり、出力では1層目の値に2層目の値が入ってしまいました
前段階のinput.txtを出力するときに、区別つけることで回避できそうです

>>924
データ構造の情報提供不足でした
"値"にはスペースやコロン、全角文字を含むものもありました
実際に組み込んでみたところ、ループから抜け出せない&出力をどこに挿入していいかわかりませんでした
batだけでできるのはすごい魅力的です
926名無し~3.EXE:2012/10/30(火) 18:51:58.81 ID:mmNicCA8
ディスクトップみたい
927名無し~3.EXE:2012/10/31(水) 07:09:17.72 ID:LodykZFr
>>925
修正版を作ってみた(但し、input.txtはSJISコードのファイルとする)
使える記号やSJIS漢字に制限はなし(スペース!#$&'()^<>^?_~|=%\@[]+*;:./" は大丈夫)
各層ごとに項目チェックするようにした
(1層目と2層目の両方に同じTITLEがあっても別物として取り扱う)
bat中に出力ファイル名を記述するようにした

なお参考までに、あるbatの標準出力(画面表示)をファイルに書き出すには
test.bat>output.txt
のようにしてファイルにリダイレクトすればよい

仕様が不明だけど、
1層目の項目データに抜けがあった場合、当ブロックだけの項目とし前のブロックの項目は引き継がない
1層目だけで2層目が無い場合もデータは出力する
もし万一2層目のデータ中にカンマが存在したらカンマは削除する(例 10,000 → 10000)
なお、3層目以降があっても構わないが、変数(k3,n3,k4,n4等)を初期化してないので同じ環境上2度目以降の実行は動作保証されない
928名無し~3.EXE:2012/10/31(水) 07:09:50.00 ID:LodykZFr
@echo off
set INPUT_FILE="input.txt"
set OUTPUT_FILE="output.txt"
set INPUT_TMP=tmp_in.tmp
set OUTPUT_TMP=tmp_out.tmp

(for /f "usebackq tokens=*" %%a in (%INPUT_FILE%) do set data=%%a&call :conv)>%INPUT_TMP%
call :main %INPUT_TMP%>%OUTPUT_TMP%
(for /f "usebackq tokens=*" %%a in (%OUTPUT_TMP%) do set data=%%a&call :reconv)>%OUTPUT_FILE%
del %INPUT_TMP% %OUTPUT_TMP%
goto :eof

:conv
set data="%data:"=鳬”%"
set data=%data:^=鳬^%
set data=%data:&=鳬&%
set data=%data:|=鳬|%
set data=%data:<=鳬<%
set data=%data:>=鳬>%
call :conv_ex
echo %data:"=%
goto :eof
:conv_ex
rem もしデータ中に","があったら削除する
for /f "tokens=1* delims=," %%a in (%data%) do set data1=%%a&set data2=%%b
if defined data2 set data2=%data2:,=%
set data=%data1%,%data2%
goto :eof
929名無し~3.EXE:2012/10/31(水) 07:10:34.77 ID:LodykZFr
:reconv
set data="%data:鳬<=^<%"
set data=%data:鳬>=^>%
set data=%data:鳬|=^|%
set data=%data:鳬&=^&%
set data=%data:鳬^=^^%
set data=%data:鳬”="%
echo %data:~1,-1%
goto :eof

:main
set index=0&set nest=0&set nest_max=0&set t0=++dummy++&set k1=&set k2=&set n1=&set n2=
for /f "usebackq tokens=1* delims=," %%a in (%*) do set data1=%%a&set data2=%%b&call :sub
set t=&for /l %%a in (1,1,%nest_max%) do call :sub_make_title %%a
echo %t:~1%
set nest=0&set k0=&for /l %%a in (1,1,%index%) do set d%%a=
for /f "usebackq tokens=1* delims=," %%a in (%*) do set data1=%%a&set data2=%%b&call :next
goto :eof

:sub_make_title
call set forlist=%%n%1%%
for %%b in (%forlist%) do call set t=%%t%%,%%t%%b%%
goto :eof
930名無し~3.EXE:2012/10/31(水) 07:11:30.21 ID:LodykZFr
:sub
if "%data1%" == "{" set /a nest+=1&goto :eof
if "%data1%" == "}" set /a nest-=1&goto :eof
if %nest% gtr %nest_max% set nest_max=%nest%
set hit=-1
call set forlist=%%n%nest%%%
for %%s in (%forlist%) do call :sub2 %%s "%%t%%s%%"
if %hit% neq -1 set d%hit%=%data2%&call set k%nest%=%%k%nest%%% %hit%&goto:eof
set /a index+=1
set t%index%=%data1%
call set n%nest%=%%n%nest%%% %index%
goto :eof
:sub2
if "%data1%" equ %2 set hit=%1
goto :eof

:next
if "%data1%" equ "{" set /a nest+=1&set disp=on&goto :eof
if "%data1%" neq "}" call :sub&goto :eof
if %disp%==off goto :next2
set data=%d1%&for /l %%c in (2,1,%index%) do call set data=%%data%%,%%d%%c%%
echo %data%
:next2
call :del %%k%nest%%%&set /a nest-=1&set disp=off
goto :eof
:del
(for %%c in (%*) do set d%%c=)&set k%nest%=
goto :eof
931名無し~3.EXE:2012/11/03(土) 15:52:11.59 ID:lDmefxUU
バッチでやるもんじゃない
932名無し~3.EXE:2012/11/03(土) 16:29:56.47 ID:lDmefxUU
バッチで無理するとばっちい
933名無し~3.EXE:2012/11/05(月) 11:32:29.64 ID:K4UsPEae
馬鹿なこと言ってんなよ
こっちにとばっちりくるだろ
934名無し~3.EXE:2012/11/05(月) 22:08:14.30 ID:+/36/XSe
正論だな
935名無し~3.EXE:2012/11/06(火) 12:11:39.99 ID:hC6Puyhu
>>934 ←馬鹿
936名無し~3.EXE:2012/11/06(火) 16:38:16.05 ID:6BctWnle
ん?
そか!
力作のバッチを褒めて欲しかったのか?
褒めてやろうか?
ご苦労。
お疲れ。
937名無し~3.EXE:2012/11/07(水) 16:45:53.93 ID:ehtnocP9
10行以上のバッチは見る気がしないな
938名無し~3.EXE:2012/11/08(木) 00:39:53.44 ID:HS6Vpnnz
私はすごいと思ってます。
939名無し~3.EXE:2012/11/08(木) 00:50:59.01 ID:YeWMHax9
なにがすごいんだ?
どうせ碌でもないものしかできないのにか?
940名無し~3.EXE:2012/11/08(木) 15:12:11.74 ID:R+u8GS3O
>>940
自分の実力でモノを量るクセは直した方がいいぞ
941名無し~3.EXE:2012/11/08(木) 15:15:29.82 ID:7dLwXUk/
何それ自戒?
942名無し~3.EXE:2012/11/08(木) 15:15:59.04 ID:9yFk4XNl
943名無し~3.EXE:2012/11/08(木) 15:23:28.66 ID:p5LJOvHc
ここで貶してる奴って嫉妬?
944名無し~3.EXE:2012/11/08(木) 17:25:35.09 ID:YeWMHax9
wshで作れば完全なものが何分の一かの行数でできるわ
945名無し~3.EXE:2012/11/08(木) 17:33:56.89 ID:9yFk4XNl
ココはツールの優劣を語るスレではないという認識だけど?
946名無し~3.EXE:2012/11/08(木) 17:36:51.31 ID:p5LJOvHc
>>944
それってほとんど無意味な貶しに見えるね
ここはBATメインなスレなんだからBATでも出来るって所に意味を見出すべきだろう
947名無し~3.EXE:2012/11/08(木) 17:48:51.89 ID:p5LJOvHc
それより、その程度の理由で文句つけてたなんて驚きだ
もっとちゃんとした理由でもあるのかと思ってた
例えば、こうやればもっとスマートにできるのに不細工だなあ程度の理由はあると思ってたよ
948名無し~3.EXE:2012/11/08(木) 18:53:23.35 ID:bkdEOyUb
質問させてください。OSはXPです
ラムディスクをzドライブにしております
スタートアップでアプリを起動する最後にスクリプトやバッチなどで
G:\FREESOFT\X-Iron_22.0.1250.0_rev10のフォルダをZのルートにコピーし
それが完了したらイロンを起動するというものがほしいのですが
こちらで作成お願いしても良いのでしょうか?
もし可能でしたらよろしくお願い申し上げます。
949名無し~3.EXE:2012/11/08(木) 19:52:12.97 ID:g182hW4Z
作成代行じゃねーんだ少しは勉強しろ
950名無し~3.EXE:2012/11/08(木) 19:54:37.95 ID:YeWMHax9
ムロンだめ
951名無し~3.EXE:2012/11/09(金) 23:01:38.92 ID:dRxZaYUJ
なるほど異論は許さぬと
952名無し~3.EXE:2012/11/09(金) 23:33:47.50 ID:VFC2+eP3
面白い「質問」がきたなあw
953名無し~3.EXE:2012/11/10(土) 02:04:23.79 ID:6pisMDUN
あいやーん
954名無し~3.EXE:2012/11/10(土) 21:40:54.01 ID:FQM4B6z9
>>952

> もし可能でしたらよろしくお願い申し上げます。

これが質問なんだろう。 答えはNoだ!
955名無し~3.EXE:2012/11/10(土) 22:58:00.24 ID:6pisMDUN
質問はこっちだろ?
>こちらで作成お願いしても良いのでしょうか?
956名無し~3.EXE:2012/11/11(日) 23:23:32.29 ID:9j20zI4s
スマホでカーネルパニック発生して起動しなくなった・・・
セーフモードでコマンドラインとかも無いし、不便やね。
957名無し~3.EXE:2012/12/03(月) 05:04:41.37 ID:088uiTfb
robocopyコマンドのログ出しと画面表示を両方させる
/TEEっていうスイッチ
いったいどういう略称なんでしょうか
気になってしょうがないです
958名無し~3.EXE:2012/12/03(月) 05:33:31.28 ID:kAKag1QB
大昔からUNIXのコマンドにteeというものがあり、そこから来てる
DOSにもこの機能が要望する人は多かったので、unixライクな拡張コマンドにも入っていた

teeとは、Tの字のこと(あまりにもそのままだけど)
Tの字のように、1つの流れを2つに分岐させることから、teeというコマンドが生まれた
Tの字、T字管、T継手

T字路のこともT-junctionと言う
959名無し~3.EXE:2012/12/03(月) 10:53:23.44 ID:088uiTfb
>>958
ありがとうございます、すっきりしました!
素で「へぇ〜」っていったの久しぶりですwww
960名無し~3.EXE:2012/12/04(火) 23:03:06.10 ID:CTYNT5Fy
ファイル内の文字列は置換ってどうやんの?
sed的なコマンドはないの
961名無し~3.EXE:2012/12/04(火) 23:09:25.45 ID:rtnan1w9
無い。

ていうか文字列をそのまま扱うコマンドが無いね。
ダメ文字がありすぎる。
962名無し~3.EXE:2012/12/05(水) 01:41:00.13 ID:vNr/y6Dq
powershellコマンドがあるよ
963名無し~3.EXE:2012/12/08(土) 10:21:39.61 ID:svQLhPUI
のっとりってどうやんの?
直でくれや
964名無し~3.EXE:2012/12/08(土) 16:16:14.95 ID:ZJqkoRzO
@echo このPCは、のっとられました。
965名無し~3.EXE:2012/12/09(日) 14:23:32.80 ID:1TWkJChs
まさしく車輪の再発明・・・
http://gigazine.net/news/20121208-batchrun/
966名無し~3.EXE:2012/12/09(日) 14:45:56.07 ID:Q2o6OmwZ
>>965
モダンアプリなら売れてた
967名無し~3.EXE:2012/12/09(日) 17:36:58.01 ID:o+15KfEi
>>965
出来損ないのJP1みたいなもんか?w
968名無し~3.EXE:2012/12/09(日) 18:18:48.33 ID:sbtIqpkJ
それは、さすがに JP1 に失礼だよ (w
969名無し~3.EXE:2012/12/10(月) 07:46:42.38 ID:MFFn8ImV
ついったでは大絶賛されてるね
970名無し~3.EXE:2012/12/10(月) 09:42:23.69 ID:3eTX4nia
>>965
コマンドラインを使わず、GUIでぽいぽい出来るから便利だよ
971名無し~3.EXE:2012/12/10(月) 13:37:19.73 ID:qJCnufuf
バッチでファイル一括処理する時は、
ちょっとしたアホなミスで大切なファイルが全て消滅って危険性と隣り合わせだけど
そのツールならそういう危険性は無いのかな?
972名無し~3.EXE:2012/12/10(月) 15:06:09.57 ID:vc6LY9aY
if exist ("%ProgramFiles(x86)%\Windows Resource Kits\Tools\sleep.exe"|%CD%\sleep.exe) goto ROBOCOPY else goto ERROR

if existで「〜または…にsleep.exeが存在する場合」ってどう書くんでしょうか
これだと【|】の使い方が誤っています、とエラー
【OR】もだめでした
973名無し~3.EXE:2012/12/10(月) 16:04:06.88 ID:Hf3SyY1J
無い事菊名
974名無し~3.EXE:2012/12/10(月) 17:26:17.50 ID:J59/mjBu
and も or も概念が存在しない
975名無し~3.EXE:2012/12/10(月) 19:21:36.08 ID:Hf3SyY1J
AND
if if

OR
if
if
976名無し~3.EXE:2012/12/11(火) 01:09:07.71 ID:ikUC2pmd
パスが通ってるなら

sleep /? 1>nul 2>&1
if not errorlevel 1 なにか

ところでリソースキットの sleep って 「/? 」、それとも 「--hekp」 ?
977名無し~3.EXE:2012/12/11(火) 01:09:59.33 ID:ikUC2pmd
hekp ってw ずれたw
978名無し~3.EXE:2012/12/11(火) 11:14:15.90 ID:iTnFE6UV
「神様ヘクプ!」
979名無し~3.EXE:2012/12/11(火) 13:54:14.48 ID:PWqhlQxJ
論理をひっくり返して

if not exist A if not exist B goto skipped
echo どっちかはあるよ〜

:skipped

が素直かね
980979:2012/12/11(火) 13:54:55.42 ID:PWqhlQxJ
って>>975に書いてあった
981名無し~3.EXE:2012/12/11(火) 14:43:23.79 ID:KvXiuy4m
982名無し~3.EXE:2012/12/11(火) 19:55:12.52 ID:xDIPN8gf
983名無し~3.EXE:2012/12/11(火) 20:33:02.27 ID:3r7Viost
984名無し~3.EXE:2012/12/11(火) 21:15:56.44 ID:/69yJCZA
次スレは?
985972:2012/12/11(火) 21:47:44.17 ID:AbjQndC8
>>973-979
返答ありがとうございます
robocopyのミラーリングである程度のミス防止になると思い
存在すればsleepで30秒待たせて警告文をゆっくり読ませてrobocopy
という処理をしたいと思ってました

ただ、自分自身にpingを30回打つやりかたのほうが
インストールされてるかの確認も要らないようなので
そちらにすることにしました
986名無し~3.EXE:2012/12/11(火) 22:15:17.81 ID:pvUSCTT7
ちなみにVista以降なら標準でtimeoutコマンドがあってsleep代わりに使える
987名無し~3.EXE:2012/12/12(水) 02:20:06.68 ID:7zfp6XE0
うめ
988名無し~3.EXE:2012/12/12(水) 02:50:10.43 ID:0buqHTd7
ウメ
989名無し~3.EXE:2012/12/12(水) 02:55:06.72 ID:2SM3fnDv
うに
990名無し~3.EXE:2012/12/12(水) 02:59:47.55 ID:vcH66JUQ
990
991名無し~3.EXE:2012/12/12(水) 03:01:46.18 ID:N/Av3Drc
992名無し~3.EXE:2012/12/12(水) 04:06:37.86 ID:yrlmbhP4
うめ
993名無し~3.EXE:2012/12/12(水) 05:23:57.82 ID:q1m7DpRa
次スレは?
994名無し~3.EXE:2012/12/12(水) 06:32:11.47 ID:41pAq6zE
うめ
995名無し~3.EXE:2012/12/12(水) 07:23:00.46 ID:JRs5u4VM
次スレ

初心者〜管理者まで必読!コマンドライン(DOS Pt.9)
http://toro.2ch.net/test/read.cgi/win/1355264457/
996名無し~3.EXE:2012/12/12(水) 08:04:10.24 ID:DRWyusVI
うめ
997名無し~3.EXE:2012/12/12(水) 19:33:00.41 ID:Tjug4RWz
998名無し~3.EXE:2012/12/12(水) 19:35:44.37 ID:Tjug4RWz
埋め
999名無し~3.EXE:2012/12/12(水) 19:37:52.79 ID:Tjug4RWz
梅干し
1000名無し~3.EXE:2012/12/12(水) 19:44:22.51 ID:Tjug4RWz
fin.
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。