[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 07/26 10:45 / Filesize : 187 KB / Number-of Response : 837
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【.cmd】 バッチファイルスクリプト %5 【.bat】



1 名前:デフォルトの名無しさん [2009/05/14(木) 11:29:31 ]
前スレ
【.cmd】 バッチファイルスクリプト %4 【.bat】
pc12.2ch.net/test/read.cgi/tech/1229955189/

668 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:08:37 ]
回答させてください
>ログイン時のバッチファイルで表示させていたのですが、
>Windows 7では動作しないみたいなのですorz
動作するかしないかはっきりさせろ!
実行してみりゃどういうエラーが出てるかわかるだろ?

669 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:23:23 ]
>>668
前任の人の設定のままでXPのマシンをログインすると
ちゃんとショートカットでるのですが、7だと、
エラーメッセージも出ず、スルー状態なんです。
(つまり何もおきない)
他のソフトインストールして試して見ます。
このスレの人で、ショートカット表示
させるコマンドライン知っている人い
ましたら、ご教示ください。
おながいしまつ。

670 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 14:29:35 ]
ドメインへのログオンスクリプトならポリシーの適用してない/できてないとか。
そもそもhomeでドメインに参加できないとか。
ショートカット表示の意味がわからない。
エクスプローラ上で表示させる事なのか、リモート資源の接続先をポップアップさせる事なのか。
とにかく5W1Hで明確に書いてくれないと全くわかんね。

671 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 15:20:16 ]
>>670 多分668さんも同一人物
とても親切にしていただいてありがとうございます。
前の設定者はドメインに参加する時点で、windows 2003 server
のActive Direcrory処理の際に、ログオンするときのバッチファイルに
デスクトップにショートカットを表示させるようにしてたみたいです。
というのも、管理者以外はディレクトリ構造も知らないので、
それを全員に分からせてセキュリティレベルを下げるより、
自動的にショートカットを表示してクリックさせるという形に
したようです。確かにパスを追っていけばそのファイルに到達しますが、
わざとそうさせないみたいです。(その方針には私も賛成します)
長文すみません。

672 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 15:22:13 ]
で、デスクトップへ通常使うけど、
パスを探られたくないフォルダへの
ショートカットを入れたいということです。
パソコンしかさわったことないので、
こういう具体的かつ実践的なご指摘はとても
勉強になります。ありがとうございます。

673 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 17:01:32 ]
ポリシー設定のなかにもデスクトップの表示に関する項目があった気がする
このスレ的にはログオンスクリプトの中でNET USEで接続しているんだろうな位・・・もしかするとSUBST?

674 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 17:24:57 ]
ありがとうございます。
明日は日曜ですが、隠れ出社して試してみます。

675 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:12:15 ]
バッチからショートカットを作るのはむずかしかろ
インターネットショートカットならかんたん
(
echo;[InternetShortcut]
echo;URL=\\server\sharename\folder
) > desktop\hoge.url

676 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:34:54 ]
どういう風に作ってたかしらんけど、フォルダ構造が変わったからじゃないの?
大抵は新しいパスへリダイレクトしてくれるけど、AllUsers→Publicの部分はうまくいかない模様

XP以前:C:\Documents and Settings\All Users\Desktop
Vista以降:C:\Users\Public\Desktop



677 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:15:31 ]
>>676
さすがに会社のサーバ?でユーサフォルダ以降のフォルダ使わないだろw
まさか、な・・・?

678 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 00:15:40 ]
>>675-677
ヒントありがとうございます。
まさかもありえるのでちょっとやってみます。

679 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 05:55:24 ]
規模にもよるけど引継ぎ書とか運用手順書とか必要でしょ。
次の人に渡すにしても。
前任者に要求しとかないとまずいね。

680 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 12:55:36 ]
「ログオンするときのバッチファイル」を、クライアントのWindows7マシン上にコピーして
コマンドラインから実行してみたらエラー内容が分かるんじゃない?

681 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 18:47:20 ]
みなさんありがとうございます。
バッチファイルが別のバッチファイル呼び出すような
入れ子構造になっていることが判明し、解析に手間取ってます
というか、そもそもDOSのコマンド知らないorz
一から調べていますので少々時間くださいまし。

682 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 19:37:11 ]
みなさんヒントありがとうございました。
2ch落ちたので、その間にいろいろ調べて
見ました。問題が2点あって、一つが
>>676 さんのご指摘に近く、
Xp「デスクトップ」→7「Desktop」
Xp「NetHood」→7「AppData\Roaming\Microsoft\Windows\Network Shortcuts」
Xp「スタート メニュー\プログラム」→「Microsoft\Windows\Start Menu\Programs」
に書き換えるのと、
>>670 673 さんのご指摘に近く、
Xpだとアクセス権のないフォルダ内の実行ファイルも実行できていた
のが、7だとアクセス権がないフォルダのファイルはスルーされること
が問題で、それらを訂正したら何とか動いてガッツですた。
(3日かかりますた。)

ちなみに、それで0からDOSコマンド勉強始めたのですが、
前任者は、ショートカットをアクセスされてもいいフォルダにつくって
そのショートカット自体をファイルとしてコピーするということで
ショートカットの自動表示をしていました。
大変勉強になりました。また、機会がございましたら、
質問させていただければ幸いです。
(ここから後は管理者スレの内容になりそうなので、
純粋にバッチファイルに関する内容の時にまた来ます。)

ありがとうございました。

683 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:56:17 ]
cmdでlinuxの mkfifo hoge 的なことってできますか?

684 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:20:27 ]
普通のファイルで1 writer n readerができるが?

685 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 21:13:13 ]
CreateNamedPipe()で作れば?

686 名前:デフォルトの名無しさん [2010/03/07(日) 19:34:58 ]
Jドライブの直下のlhacaフォルダの下にLhaca.exeという圧縮ファイルがあります
それをつかってJドライブ直下にあるaaaフォルダを圧縮してデスクトップに出力させたいのですが
どうもうまくいきません
どこが悪いかを教えてください

cd J:\lhaca
Lhaca.exe temp.zip J:\aaa



687 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:14:06 ]
もしカレントドライブがC:の場合はcdでJ:\lhacaを指定しても
そのあと j: でカレントドライブを変更しないと相対でlhaca.exeを入力したら
カレントドライブ(C:\)のカレントディレクトリでlhaca.exe探しちゃうけどそこは大丈夫?
もしそれが問題なら

j:
cd J:\lhaca
Lhaca.exe temp.zip J:\aaa

にすべき。これで違ったらそれはLhaca.exeの問題かも

688 名前:デフォルトの名無しさん [2010/03/07(日) 23:28:57 ]
有り難うございます
既にカレントドライブはJになっています。
Lhacaは普通に手で実行すると普通に開くのですが
Dosコマンドで開こうとするとどうしてもエラーになります

689 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:10:36 ]
>>688
詳しいエラー教えて

690 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 02:30:59 ]
+Lhaca 0.76 を落として試してみたけど
Windows7 x64で実行するとファイル名バグるな
(Lhaca.exe temp.zip readme.txt だと「(」名の空フォルダができるだけ
 Lhaca.exe .\temp.zip .\readme.txt とすると圧縮はできるけど「(.zip」という名前になる)
デラックス版(1.24)も試してみたが、こちらは空フォルダすら作れなかった

そもそもマニュアルにコマンドライン引数について何の記述もないし、サポート外の機能のようだ
7-Zipとかコマンドラインに正式に対応してるアーカイバ使った方がいいんでない?

691 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 02:52:16 ]
>>690
そうそう。俺もWindows7 x64 だが同じ状況。
Lhaca.exe temp.zip J:\aaa の temp.zipが問題だねえ
これを抜いて Lhaca.exe J:\aaa で圧縮するとaaa.zipで圧縮されるから
圧縮ファイルの名前=圧縮するファイルまたはフォルダ だね
そもそもzipで圧縮されずにlzhで圧縮されるようだ

もしJ:\aaaのフォルダをtemp.lzhにしたいなら

ren %2 %1
Lhaca.exe %1
ren %1 %2

上記のコマンドをLhaca.bat かなんかに保存してLhaca.exeと同じフォルダに置き、
Lhaca.bat temp aaa 
と入力すればデスクトップにtemp.lzhが作成される。
問題点は解凍した時にtempというフォルダになってしまう事か。
圧縮ファイルをrenできればいいけどデスクトップに圧縮されるからOSの関係上、
XPだと デスクトップ   vista/7 だと Desktop になって環境によってリネームできない。

結局は>>690が言っているように別のアーカイバ使った方が良いよってこと。

692 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 03:44:39 ]
文字を入力させて、その文字でファイル名を判断して該当のフォルダに移動するバッチプログラムは需要ある?
別の言語では時々見るんだけどコマンドプロンプトでやってるの見たことないからさ

blog-imgs-42.fc2.com/s/h/t/shtpg/fri.txt

693 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 03:57:06 ]
>>691
圧縮形式や作成先はLhaca自体の設定(レジストリ)に依存するようだよ
Lhacaはコマンドラインで使わないほうがいいな

694 名前:693 mailto:sage [2010/03/08(月) 04:00:46 ]
と思ったらレジストリじゃなくて
"C:\Windows\Lhaca.ini"
なんてのが勝手に作成されてた

行儀が悪すぎる!

695 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 08:24:06 ]
>>686
↓横レスだが、ZIP形式の代わりにLZH形式で圧縮するなら、この二つを併用して…
ttp://www.vector.co.jp/soft/win95/util/se028209.html
ttp://www.vector.co.jp/soft/win95/util/se020193.html

例えばWindowsXPの場合、"Lha32.exe"が"C:\WINDOWS"フォルダ直下またはカレントフォルダ、
"UNLHA32.DLL"が"C:\WINDOWS\SYSTEM32"フォルダ直下または"Lha32.exe"と同じフォルダに
存在する状態で、以下のコマンドラインを打ち込めばOKなんだけどね。

LHA32 A /D1 "%USERPROFILE%\デスクトップ\macros.lzh" "J:\aaa\*"

696 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 08:33:40 ]
>695をちょっと訂正。
macros.lzh → aaa.lzh

いずれにせよ"%USERPROFILE%\デスクトップ\"を指定するのがポイント。
ただし「窓の手」などでデスクトップのフォルダを任意のフォルダに変えてる場合、この手段は使えない。



697 名前:デフォルトの名無しさん [2010/03/08(月) 23:24:41 ]
>>691
バッチというかコマンドラインでやっても問題ない
アーカイバってどんなのがあるの?

一見しただけじゃわからないからな

698 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:03:50 ]
有名どころならWinRARとか7zipでもできるよ

699 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:31:57 ]
コマンドラインならundll.exe使っとけ。統合アーカイバDLLならどれでもおk。

700 名前:693 mailto:sage [2010/03/09(火) 01:48:24 ]
圧縮できればいいのなら makecab という手もある

701 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 02:27:44 ]
C:\Program Files\Windows Resource Kits\Tools\compress.exe /?
Syntax:
COMPRESS [-R] [-D] [-S] [ -Z | -ZX ] Source Destination
COMPRESS -R [-D] [-S] [ -Z | -ZX ] Source [Destination]
Description:
Compresses one or more files.
Parameter List:
-R Rename compressed files.
-D Update compressed files only if out of date.
-S Suppress copyright information.
-ZX LZX compression. This is default compression.
-Z MS-ZIP compression.
Source Source file specification. Wildcards may be
used.
Destination Destination file | path specification.
Destination may be a directory. If Source is
multiple files and -r is not specified,
Destination must be a directory.
Examples:
COMPRESS temp.txt compressed.txt
COMPRESS -R *.*
COMPRESS -R *.exe *.dll compressed_dir

702 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:34:51 ]
CMDで↓の様なトランザクション処理はどのように記述すればよいのでしょうか?
これがないと怖くて処理が書けないのですが。

PowerShell 2.0の新機能(5) ――トランザクション編(1/3):CodeZine
codezine.jp/article/detail/4944

703 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:31:12 ]
@echo off
powershell syori.ps1

704 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:02:59 ]
Parameter List:
-R Rename compressed files.
-D Update compressed files only if out of date.
-S Suppress copyright information.
-ZX LZX compression. This is default compression.
-Z MS-ZIP compression.
Source Source file specification. Wildcards may be

705 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:13:21 ]
図解入門 よくわかる最新データ圧縮技術の基本と仕組み
―情報圧縮技術とアルゴリズムの基礎講座
How‐nual Visual Guide Book

圧縮アルゴリズム―符号化の原理とC言語による実装 C magazine


706 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:10:47 ]
Windows Vistaのバッチファイルについて質問です。
EXEの起動でパラメータを渡す際スペースがあるものは""
で囲むと思っていたのですが
test.exe "C:\Dir 1\"
とすると最後の\が消えて
C:\Dir 1"
として受け取ってしまうようでした
試しにVCで__argvを確認してもそうなっているようでしたが
どんな書式規則でこうなるんでしょうか?






707 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:19:37 ]
そういやウチのWinXP(SP3)では以下のようにVBScriptファイルを起動すると、
ちゃんと"C:\Dir 1\"と受け取ってくれたよ。
確かWin95/98/Me/NT/2000でも同じ挙動だったはず。

test.vbs "C:\Dir 1\"

708 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:30:02 ]
>>707
確認してみましたが、確かにVBSだときちんと受け取ってますね・・。
理由は気になりますが、書式として間違っていたわけではないと
わかっただけで大収穫です。
ありがとう。


709 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:19:30 ]
>>706
test.exe "a b c d"の中に"を入れるときは、\"でエスケープするだよ
test.exe "a \"b c\" d"

710 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:29:21 ]
>>709
おお!なるほど!エスケープを使えたとは知りませんでした。
すっきり解決しました。ありがとう。



711 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 20:03:53 ]
exeによって解釈は違うから永久にすっきりしないよ。

712 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:08:07 ]
某コマンドラインツールのリスト形式の標準出力を
某コマンド 某オプション | findstr /b /e /c:"hoge foo %fuga%"
のような書き方で完全一致検索したいのですが、
リスト形式の標準出力がLF改行となっているらしく
(パイプの代わりにリダイレクトして確認)、
findstrコマンドの/eオプションが期待通りに動作しません
(/eオプションはCRLF改行しか認識しない?)

/rオプションの正規表現モードで\nや\x0Aが使えればいいのですが、
findstrの正規表現は貧弱で使えず、$もLF改行にはマッチしないようです。

VBやVBScriptで使える「VBLF」のようなLF改行を示す定数か、
Chr(10)のような文字コード指定でLF改行を明示する手段は、
MS-DOSバッチファイルにはないのでしょうか?
環境はWinXP Pro SP3です。

713 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:12:40 ]
某コマンド 某オプション | more | findstr /b /e /c:"hoge foo %fuga%"

714 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:27:56 ]
/x

715 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 01:51:47 ]
動画ファイルだけどシステム属性が付いてるファイルがあります。
ググったところ、コマンドプロンプトから「attrib ドライブ名:\ファイル名.拡張子 -s」で解除できることがわかりました。
いちいちコマンドプロンプトからやらないで、バッチファイルを作って、それを実行することで解除するようにするにはどういう記述を書けばいいのでしょう。


716 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 02:19:01 ]
pc12.2ch.net/test/read.cgi/software/1265545912/



717 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:01:26 ]
>715
@echo off
attrib ドライブ名:\ファイル名.拡張子 -s

718 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:12:28 ]
>>711
Windowsのコマンドで、きえる、\"以外の例を挙げてみろよ

719 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:54:37 ]
"C:\Program Files\Internet Explorer\iexplore.exe" "www.ya\"hoo.com"


720 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:42:01 ]
無理すんな

721 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:20:51 ]
msdn.microsoft.com/ja-jp/library/cc429051.aspx
CommandLineToArgvW 関数
対応情報
Windows NT: バージョン 3.5 以降を使います。
Windows: サポートされていません。
Windows CE: サポートされていません。


別に無理していないけど、Windowsでサポートされていない関数の挙動を
Windows標準とみなすのはどうかと思うわけよ。
実際いろいろなexeがそれぞれ好き勝手に解釈しているし。

722 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:55:53 ]
そんな便利なものがあったのか

723 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 20:56:58 ]
NT標準でいいが 9xとかいらね

724 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 22:29:59 ]
9xは__argv、NTはCommandLineToArgvW

725 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 17:12:30 ]
>>721
無理すんな

726 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 16:59:48 ]
環境変数のuserpartってなに?



727 名前:JGSDF mailto:woman [2010/03/21(日) 00:49:25 ]
syosinsya

728 名前:JGSDF mailto:woman [2010/03/21(日) 00:51:01 ]
cmd


729 名前:712 [2010/03/21(日) 13:59:48 ]
>>713
moreコマンドでは某コマンドの出力行が長くなった時に問題あるかと思い、
find -v ""にて標準出力を無条件にfindする方法にて対応しました。
ですが、LF改行の出力が別のコマンドでフィルタすることによって、
CRLF改行に変換できるというのが大変参考になり、どうもありがとうございました。

>>714
/xオプションなら/bと/eを併用しなくてもよかったのですね
ヘルプやオンラインマニュアルで印刷やプリントといったキーワードが使われていたため、
完全一致検索のことを指していると気づいていませんでした。
マイクロソフトの翻訳は微妙なことも多いので、英語版サイトもこれからは見るようにします。
どうもありがとうございました。

730 名前:712 mailto:sage [2010/03/22(月) 08:36:22 ]
引数%1がフォルダだった場合とファイルだった場合で
処理分岐するバッチファイルを作成したいのですが、
修飾子%~a1で取得できる属性には、ディレクトリとファイルを区別する
属性がなく、困っています。

731 名前:730 [2010/03/22(月) 11:28:45 ]
OSはWindows Server 2003です。
書き忘れていました.

732 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 12:55:32 ]
あるけど?

733 名前:730 mailto:sage [2010/03/22(月) 13:17:56 ]
>>732
どうすればよいか教えて頂けませんか?

734 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 17:13:34 ]
dirかcd

735 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 17:25:02 ]
if exist dirname\con echo dir

736 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 18:17:09 ]
cd foo && echo succ || echo fail



737 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 21:26:33 ]
FOR /F "eol=-" IN ("%~a1") DO ECHO FOLDR
FOR /F "eol=d" IN ("%~a1") DO ECHO FILE

738 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 21:46:12 ]
OS:Windows2003 server,WindowsXP
複数のCSVファイル(yyyymmdd_hhmmss.csvのフォーマット)
をmoreコマンドでひとつのcsvファイルにマージする際、
プライマリキーにおいて重複するレコードを最新のレコード以外
削除するほうほうってないですかね。
バッチ単体で。

739 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 22:14:40 ]
ない

740 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 22:40:00 ]
dir /ad /b "%~dp1" | findstr /x "%~nx1" && echo foruda

741 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 18:37:03 ]
>>736
cdが変わるからやだ

742 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 19:01:51 ]
>>735
"dir name"だと駄目やんけ

743 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 20:29:25 ]
cd "c:\System Volume Information" && echo succ || echo fail


744 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 20:34:37 ]
>>741
pushd&popd使えよ

745 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 22:45:39 ]
つcmd /c cd

746 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 23:35:07 ]
バッチ内でwmic process get や wmic ntevent を使用して、結果をテキストファイルに出力しようとしています。
ここで、wmicの出力がUnicode、別のリダイレクト部分(START、ENDなどのコメント)がSJISで出力されてしまいます。
wmicの出力をSJIS(CR+LF)にする方法はありますでしょうか。




747 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 01:01:55 ]
ttp://scripting.cocolog-nifty.com/blog/2009/09/wmic-6efe.html

748 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 19:05:39 ]
>別のリダイレクト部分(START、ENDなどのコメント)がSJISで出力されてしまいます。
これをunicodeで出せばよい

749 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 00:35:26 ]
>>740
rootに使えん

750 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 00:31:19 ]
>>742
if existはどうやっても駄目だな

751 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 00:43:39 ]
if exist "dir name\*" は?

752 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 01:51:37 ]
オラも考えてみた。

if exist "%~1" (
dir /a:d "%~1" 1>nul 2>&1
if errorlevel 2 goto nazo
if errorlevel 1 goto fileeee
if errorlevel 0 goto dirrrrr
) else (
echo "%~1" が無いよ?
goto naiyo
)

優雅さに欠けるし、= でダメだ... orz

ふと思ったのは %1 を渡された時にたとえば aaa と aaa========== を見分けるにはどーすりゃいいんだ?

753 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 02:11:47 ]
pushd %1&&popd
echo %errorlevel%

754 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 07:01:38 ]
>>752
>ふと思ったのは %1 を渡された時にたとえば aaa と aaa========== を見分けるにはどーすりゃいいんだ?
ヒント:findstr /x

755 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:22:25 ]
>>754
findstr をしようにも、たとえば
echo %1
というバッチファイル test.bat で
test.bat aaa と test.bat aaa===== でどちらも aaa となって末尾の = が拾えない
のを「見分けるにはどーすりゃいいんだ?」と思ったんですが。
オレ何か勘違いしてる?

756 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 14:29:01 ]
>>751
あまいな .もない、空のフォルダってぇのがあるのだ
>>752 >>753
アクセス権がないフォルダはファイルなのか
>>755
別の話を絡めるな
test.bat "aaa====="



757 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 14:35:30 ]
厳密にやりたきゃ別の言語使えよ。もう質問してる奴もいないし秋田。

758 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 15:56:47 ]
別の言語使いたけりゃ他スレへ行けよ

759 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 17:34:27 ]
厳密にやりたきゃ%~a1を使えばよいだけの話

760 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:31:02 ]
あるソフトウェアのバージョン違いが3つほど入ってるんだけど
デスクトップに同じ見た目のアイコンが3つあるからややこしくて。
バッチファイルをクリックすると上下ボタンでどのソフトを起動するか
選択できて、エンター押すと実行っていうのを作りたいんだけど
誰か作ってくんない?
イメージ的にはウィンドウズをセーフモードで起動したときに
選択する画面がまずでてくるんだけどあんな感じ☆

761 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:56:46 ]
アイコン変えればいいじゃん

762 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 18:03:24 ]
デスクトップに3つあるアイコンそれぞれに
異なるショートカットキーを指定すればいいじゃん

763 名前:760 mailto:sage [2010/03/28(日) 18:25:55 ]
こんな感じのを作ってみたんだけど
やっぱり上下のキーで選択するUIがいいなぁと思うので
誰か改造求む!

@echo off
echo アプリケーションを選択して下さい
echo [1] : メモ帳
echo [2] : ペイント
echo [3] : 電卓

set /p INPUT=
if "%INPUT%"=="1" start notepad
if "%INPUT%"=="2" start mspaint
if "%INPUT%"=="3" start calc



764 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:38:46 ]
Enterなしにキー入力を受け取る方法がないから無理

765 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:47:41 ]
指定したファイルをホームページ(FTPで)にバッチファイルで送信することは可能でしょうか?

766 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:59:09 ]
@echo off
echo アプリケーションを選択して下さい
echo [1] : メモ帳
echo [2] : ペイント
echo [3] : 電卓

choice /c 123
if "%ERRORLEVEL%"=="1" start notepad
if "%ERRORLEVEL%"=="2" start mspaint
if "%ERRORLEVEL%"=="3" start calc




767 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 20:17:58 ]
if 1==2 (
start notepad
start mspaint
start calc
)


768 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 21:11:49 ]
大昔はそういうメニューが普通にあったが、GUIで死滅したな
あってもブート選択画面ぐらいか

769 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 21:15:15 ]
1文字読み取って制御を返すツール作ればいろいろ用途が広がるよ。
2ストロークで26^2個のツール呼び出せるランチャ作ったけど軽くて便利。

770 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 22:05:34 ]
powershell使えばカーソル選択メニューが作れるよ

771 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 22:32:52 ]
>>765
できるよ
バッチファイルとまた一つftpコマンドを書いたテキストファイルが必要になる

772 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 13:10:44 ]
>>771
遅レスすみません。
ありがとうございます。おかげでできました。

773 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:37:47 ]
コマンドプロンプトに表示された文字を(txt等)に出力ってできますか?

774 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:42:46 ]
無理

775 名前:773 mailto:sage [2010/03/29(月) 22:54:06 ]
すみません、自己解決しました。

test.bat > log.txt

776 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:40:05 ]
>>775
それだと標準エラーがファイル出力できないよ



777 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:48:00 ]
test.bat > log.txt 2<&1


778 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:59:44 ]
>>776-777
そうなんですか、知りませんでした!
ありがとうございます。

779 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 11:24:07 ]
質問です。

ファイル
a.txt.bak
ab.html.bal
abc.exe.bak

があるとすると
拡張子.bakだけ一括で名前変更できるでしょうか?

780 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:17:31 ]
できないわけがない

781 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:35:10 ]
ren *.bak *.hoge

782 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:51:39 ]
それじゃ
a.txt.baka
ab.html.aho
abc.exe.baka

拡張子.bakaだけ一括で名前変更できるでしょうか?

783 名前:779 mailto:sage [2010/03/30(火) 14:02:57 ]
すみません、質問の仕方が間違えていました。
bakの部分だけ消したいんです。

a.txt.bak→a.txt

784 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 14:17:18 ]
ren *.bak *.

785 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 15:07:17 ]
>>784
ありがとうございます
できました

786 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 16:00:55 ]
hogeよりはahoやbakaの方が好き
おっと、kusoも使うなw



787 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 17:21:12 ]
chinko
manko
unko
shikko

788 名前:デフォルトの名無しさん [2010/04/06(火) 00:27:29 ]
すみません。テキストファイルの中身の特定行だけ抜き出す方法を教えてください。

test.txt中身
---------------
morning
hello
bye
---------------

上のようなファイルがあったとして、1行目のmorningや、3行目のbyeを
変数やファイルに出力する方法はないでしょうか。
外部コマンドは使えないWindowsXP/2003環境です。

789 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 02:28:58 ]
for /?

790 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 02:28:59 ]
>>788
find使って >baka.txtとかで出力

うまく使えば一つのバッチファイルで色んなバッチファイルを作成することができるから便利

791 名前:デフォルトの名無しさん [2010/04/06(火) 07:40:04 ]
findは外部コマンド

792 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 07:56:00 ]
>>788
findstr /r "^morning$ ^bye$" > hoge.txt

793 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 09:11:31 ]
>>791
空気読め馬鹿

794 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 09:28:43 ]
料理できないと買ってきた惣菜をならべるぐらいのことでも自慢するんだよ
それ外で買ってきたんだろとあきれられてても本人は満足

795 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 20:43:40 ]
バッチファイルでテトリス作って

796 名前:デフォルトの名無しさん [2010/04/06(火) 22:12:33 ]
>>792
ありがとうございます。
説明が不足してたのですが、必ずしも1行目にmorningがあって、3行目にbyeがあるわけじゃない場合に
1行目、3行目を抽出って出来るんでしょうか。根本から違うやり方考えた方が良いですかね・・・。



797 名前:792 mailto:sage [2010/04/06(火) 22:28:25 ]
findstrコマンドは/cオプションを指定しない場合は、
二重引用符内で半角空白区切りで指定されたキーワードを
OR検索できるんだけど、
やりたいのは、特定キーワードで抽出したいんじゃなくて、
特定の行番号を抜き出したいってこと?

798 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 23:05:41 ]
下のようなのを作る場合変数iの引数は12個まで
とかいう決まりがあるのでしょうか?

for %%i in (%*) do xxxxx %%i
pause

このバッチファイルに引数となるファイルをドラッグ&ドロップしたら
「指定されたデバイス、パス、またはファイルにアクセスできません。
 アクセス許可がない可能性があります。」

と言われます。ちなみに12個まではOKでした。

799 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 23:18:13 ]
>>798
D&Dした複数ファイルのフルパス文字列の長さが限界に達したのでは?
その12ファイルをもっと浅い(フルパスの短い)階層に移動させれば、
13ファイル以上もいけるかと。

Win9x系かNT系かでも変わってくると思う。

800 名前:799 [2010/04/06(火) 23:21:16 ]
ごめん。NT系でもNT4.0や2000とXP以降で違うみたい。
support.microsoft.com/kb/830473/ja

801 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 23:25:24 ]
>>799,800
たぶん、ファイルの長さだと思います。
ありがとうございました。

802 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 23:34:51 ]
たぶん?
結局どうでもよかったのか

803 名前:792 [2010/04/06(火) 23:55:34 ]
>>796
find /n /v "" test.txt|findstr /b /l "[1] [3]"
または
type test.txt|find /n /v ""|findstr /b /l "[1] [3]"
または
type test.txt|findstr /n /v ""|findstr /r "^1: ^3:"

Mac環境から書き込んでてテストしてないから間違ってるかも。
特に3つ目の「findstr /n /v ""」は入力ファイルの全行に行番号出力になってないかも。

804 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 23:02:04 ]
>>801
>たぶん、ファイルの長さだと思います。
ファイルサイズは関係ないだろ

805 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 23:09:06 ]
<test.txt (
set /p x=
call echo %%x%% >1.txt
set /p x=
call echo %%x%% >2.txt
set /p x=
call echo %%x%% >3.txt
)

806 名前:spectre [2010/04/11(日) 18:40:33 ]
アクティブな画面を「最新の情報に更新」にするバッチってありますかぁ?
どなたかよろしくお願いします。



807 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:47:26 ]
バッチでは不向きな気が…
簡単なものでよければ VBScript 辺りでどう?

' ## update.vbs ##
Dim objWshShell     ' WshShell オブジェクト
Set objWshShell = WScript.CreateObject("WScript.Shell")
If Err.Number = 0 Then
objWshShell.SendKeys "{F5}"    ' F5 を送信
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objWshShell = Nothing

808 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:53:59 ]
しかしどうやって動かすんだ?
動いたときアクティブなウィンドウは?

809 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 20:05:00 ]
想定の範囲外です(キリッ
適当なフリーソフト使え

810 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 19:17:26 ]
ローカルでphpスクリプトを動かす際に一連の流れを
バッチファイルでまとめてしまおうと思ったのですが

cd "ディレクトリ1"
httpd.exe
cd "ディレクトリ2"
C:\php\php.exe batchtest.php

このようなバッチファイルを作ったところ
httpd.exeを起動したところで止まってしまい、httpd.exeを終了させないと
次の行に行きませんでした。

どのようにすればすべての処理が行われるでしょうか?

811 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 19:36:02 ]
cd "ディレクトリ1"
httpd.exe
taskkill /im httpd.exe
cd "ディレクトリ2"
C:\php\php.exe batchtest.php

812 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 20:56:35 ]
start httpd.exe

813 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 07:38:21 ]
>>811
ヒネリがないので笑えん。

814 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 12:59:02 ]
>>813
素直な奴だな。

httpd.exeを終了させないとtaskkillが実行されないという二段オチなのに。

815 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 14:49:58 ]
下記のバッチ内、:mpexec_core にある if 文で落ちてしまいます。
書き方に何か問題があるのでしょうか?
ideone.com/OvSYW

816 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:10:11 ]
その行だけじゃわからないよ
環境変数に適切な値が入っているならちゃんと動くように見える
echoの表示やエラーメッセージはどうなってんの?

エスパー初級な解答
if "%xxx%" geq "%yyy%"のように""で括れば
環境変数が空の場合でも落ちる事はなくなるはず



817 名前:815 mailto:sage [2010/04/13(火) 15:25:07 ]
>816
if "%MP_MAX%" geq "%MP_NUM%" (
に変更しても落ちました。
直前の出力は
if 1 geq 1 (
なので、両方に1が入っていることは確認済みなのですが・・・。
エラーは 「コマンドの構文が誤っています。」 です。

818 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 18:43:38 ]
エラーの詳細が出るようにバッチの先頭におまじないを書いておく

echo W 100 2 0 200 | debug

819 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 18:47:20 ]
>>817
()のなかの命令が不適切なのでは?

820 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 19:54:16 ]
( ) の中で SET を使うのはやめといた方がいいよ
GOTO 文などに置き換えれば動くはず

821 名前:815 mailto:sage [2010/04/13(火) 20:06:10 ]
>>819,820
()の中を関数化したら正常に動作しました。
ありがとうございました。

822 名前:デフォルトの名無しさん [2010/04/13(火) 20:43:32 ]
すべてのウィンドウを「最新の情報に更新」にするバッチってありますかぁ?

823 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 22:48:22 ]
ないよ

824 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 02:26:10 ]
ありがとうございました。

825 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 17:07:20 ]
作成日時は%~t1で取れますかぁ?

826 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 17:14:10 ]
ヘルプ見るの面倒



827 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 09:14:28 ]
>>825
こういうこと?

for /? より

%~tI - %I ファイルの日付/時刻に展開します。



828 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 14:10:17 ]
それ更新日時

829 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 18:25:03 ]
>>828
827じゃないが、ファイルの日付が何になるかって、
環境変数で変更できなかったっけ?
まぁ、できなくても、作成日時だったら、
他の手段で、何とでもなるから困らないけどね

830 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 20:08:20 ]
それDIRCMD

831 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 06:44:59 ]
>>814
だから、それは一目見て分かることで何の面白味もないの。

832 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 07:35:16 ]
>>810
httpdが無いと動かないようなphpなら
netstatとか使って、httpdが起動完了したことを検知しないと駄目な気がする
まぁ、batchtest.php内で成功するまで待つって手もあるけど…
あと、最後にhttpdを止める必要はないの?
動かしっぱなしなら、httpdをバッチで起動する意味はないと思うけど?

833 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 18:16:02 ]
馬鹿じゃないんだからそんなこといちいち聞かれなくても分かってますよ。

834 名前:デフォルトの名無しさん [2010/04/23(金) 20:48:27 ]
バッチでキューを実装したいけど実装できますよね?
現状想定案
■I/F
QUE.bat -que|-deq -prm1
prm1=パラメタファイル
格納DIR 、入力元DIR、出力先DIR、ファイル名
■que指定時
1.入力ファイル名と同名のファイルが格納先にないかチェック
↓  ↓ない
↓  末尾0付格納
3.カウンタをインクリし2に戻る
■deq指定
1.格納先ディレクトリに末尾0ファイルがあるかチェック
↓ ↓ない
↓ エラー返却

↓ある
2.ファイルを出力先に出力

3.カウンタで小さい方からサーチ
カウンタ-1でリネーム


835 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 23:48:57 ]
実装自体はいけそう
que指定時の2の処理が不明だったり
格納ファイルのフォーマット(ファイル名の規則)をどう定義するか
カウンタの初期値をどこから設定するかなど細部が気になる

836 名前:デフォルトの名無しさん [2010/04/24(土) 00:35:27 ]
>>835
携帯から書いたら改行多すぎと言われて、消しすぎたぜ…

■大体決めたこと
1.格納先のファイル名は入力ファイル名+連番。
1〜が数えやすそうかな。

2.返却値はキューの残数。
取出失敗時はマイナス

■迷ってること
1.格納先DIRパスとファイルの種類は1対1で対応させるかどうか?

2.キュー残数チェック用のオプションを実装するか?

3.もっと汎用的な設計がないか?
(サンプル的なやつ)

4.バッチ暦10日だけどそもそも言語仕様的に無理とかないよね?

できそうと聞いて安心したよ。
迷4以外はただの設計とアルゴリズムだし。
技術的に困ったらまたお願いします。








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<187KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef